【问题标题】:Compressing JS and CSS in Static HTML Files在静态 HTML 文件中压缩 JS 和 CSS
【发布时间】:2012-09-06 14:35:51
【问题描述】:

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>

其中大部分都是单独缩小的,但这仍然不是最理想的,因为当客户端的缓存为空时,它需要向网络服务器单独请求。有没有像 YUI Compressor 或 Closure Compiler 这样的工具,可以将 HTML 文件作为输入,压缩所有单独的外部链接脚本,然后重写输出?这类似于django_compressor 所做的。

【问题讨论】:

    标签: javascript html css minify python-sphinx


    【解决方案1】:

    同意以上回答。

    你可以做另一件事。

    将所有脚本放在正文而不是标题之后。可能会提高您的加载速度。

    【讨论】:

      【解决方案2】:

      你可以试试Springboard。我认为它非常适合您的需求。

      【讨论】:

        【解决方案3】:

        您需要两个组件 - 一个组合和缩小您的资源,另一个重写静态 HTML 文件以使用缩小的资源。

        对于第一个组件,我相信你可以使用this minify engine;它旨在动态提供页面,但您可以弄清楚如何直接挂钩代码或将输出保存到静态文件(URL 允许您指定多个文件)。

        对于第二个元素,将页面解析为 XML(假设它是有效的 XHTML)并找到任何 &lt;link&gt;&lt;script&gt; 标记应该不难,存储没有这些元素的文档副本,编译缩小资源并在&lt;head&gt; 节点关闭后添加它们,读取文件的其余部分,并存储构建的 XHTML 文档。如果这太多了,您还可以使用正则表达式来查找和替换&lt;link&gt;&lt;script&gt; 标记;通常正则表达式无法完美解析 XML,但这些标签应该没问题,因为它们不会嵌套。

        如果您想整理我所描述的内容,但需要更多帮助开始,请询问。

        【讨论】:

          猜你喜欢
          • 2014-09-01
          • 2011-09-18
          • 1970-01-01
          • 1970-01-01
          • 2020-06-12
          • 1970-01-01
          • 2013-12-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多