9

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所做的。

4

3 回答 3

1

同意楼上的回答。

你可以做另一件事。

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

于 2012-09-17T07:13:46.900 回答
0

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

于 2012-09-17T07:26:51.557 回答
-1

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

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

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

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

于 2012-09-06T17:44:04.013 回答