簡體   English   中英

壓縮靜態HTML文件中的JS和CSS

[英]Compressing JS and CSS in Static HTML Files

python文檔生成器Sphinx的輸出產生大量HTML文件。 每個人都有一個包含大量JavaScript和CSS的標題包括:

<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>

其中大部分是單獨縮小的,但這仍然不是最理想的,因為當客戶端的緩存為空時,它需要單獨的請求到Web服務器。 是否有像YUI Compressor或Closure Compiler這樣的工具將HTML文件作為輸入,壓縮所有單獨的外部鏈接腳本,然后重寫輸出? 這與django_compressor的作用類似。

同意以上答案。

你可以做另外一件事。

將所有腳本放在Body之后而不是標題。 可能會增加你的裝載速度。

你可以試試Springboard 我認為它將非常適合您的需求。

您需要兩個組件 - 一個組合並縮小您的資源,另一個組件重寫靜態HTML文件以使用縮小的資源。

對於第一個組件,我相信你可以使用這個minify引擎 ; 它旨在動態地提供頁面,但您可以找出如何直接掛鈎代碼或將輸出保存到靜態文件(URL允許您指定多個文件)。

對於第二個元素,將頁面解析為XML(假設它是有效的XHTML)並找到任何<link><script>標記,存儲沒有這些元素的文檔副本,編譯縮小的資源和在<head>節點關閉后添加它們,讀取文件的其余部分,並存儲構建的XHTML文檔。 如果這太多了,您也可以使用正則表達式來查找和替換<link><script>標記; 通常正則表達式不能完美地解析XML,但這些標記應該沒問題,因為它們不會嵌套。

如果你想把我所描述的東西放在一起但需要更多的幫助,那就問問吧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM