2012-09-06 16 views
9

La salida de Sphinx, el generador de documentación de python, da como resultado una gran cantidad de archivos HTML. Cada uno tiene una cabecera con un gran número de JavaScript y CSS incluye:Comprimir JS y CSS en archivos HTML estáticos

<link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> 
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> 
<script type="text/javascript" src="../_static/jquery.js"></script> 
<script type="text/javascript" src="../_static/underscore.js"></script> 
<script type="text/javascript" src="../_static/doctools.js"></script> 
<script type="text/javascript" src="../_static/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> 
<link rel="stylesheet" type="text/css" href="../_static/custom.css" /> 
<link rel="stylesheet" type="text/css" href="../_static/colorbox/colorbox.css" /> 
<script type="text/javascript" src="../_static/colorbox/jquery.colorbox-min.js"></script> 

mayoría de estos están minified de forma individual, pero esto sigue siendo subóptima porque requiere solicitudes separadas al servidor web cuando la caché del cliente está vacía. ¿Hay alguna herramienta como YUI Compressor o Closure Compiler que tome los archivos HTML como entrada, comprima todos los scripts individuales vinculados externamente y luego reescriba los resultados? Esto sería similar a lo que hace django_compressor.

Respuesta

0

Hay dos componentes que está pidiendo - uno que combina y le resta sus recursos, y otro que reescribe los archivos HTML estática para el uso de los recursos minified.

Para el primer componente, creo que podría utilizar this minify engine; está diseñado para mostrar páginas dinámicamente, pero puede averiguar cómo conectar directamente el código o guardar el resultado en archivos estáticos (la URL le permite especificar varios archivos).

Para el segundo elemento, que no debería ser demasiado difícil de analizar la página como XML (asumiendo que es válido XHTML) y encontrar ningún <link> o <script> etiquetas, almacenar una copia del documento sin esos elementos, compilar los recursos minified y agréguelas una vez que se cierre el nodo <head>, lea el resto del archivo y almacene el documento XHTML generado. Si esto es demasiado, también podría usar una expresión regular para buscar y reemplazar las etiquetas <link> y <script>; normalmente las expresiones regulares no pueden analizar perfectamente XML, pero esas etiquetas deberían estar bien porque no se anidarán.

Si desea armar lo que he desribed pero necesita más ayuda para empezar, sólo hay que preguntar.

2

De acuerdo con la respuesta anterior.

Usted puede hacer otra cosa.

Ponga todos los scripts después de cuerpo en vez de cabecera. Puede ser que aumente su velocidad de carga.

1

Puede intentar Springboard. Creo que será muy adecuado para sus necesidades.

Cuestiones relacionadas