假设我的页面结构是:
1. one.html :
includes -> a.js , b.js , c.js ,d.js
2. two.html :
includes -> a.js , b.js, x.js, y.js, z.js
3. three.html :
includes -> a.js , b.js, s.js, x.js, y.js
等等。有些页面的访问量比其他页面多,比如 3 个页面占网站所有页面浏览量的 99%。
我正在寻找解决方案:
i) 组合并最小化可包含在页面中的组中的文件。
ii) 具有将组的文件名映射到最终组合文件名的一些逻辑。
iii) 包括像 Google Closure 编译器 / YUI 压缩器这样的压缩器。
我看过的一种解决方案是: PHP minify
其中大部分。但是它对我来说有以下缺点:
i) 我将在 CDN 服务器上托管我的静态组合文件,而不是在托管 PHP minify 的同一 Web 服务器上,因此 PHP minify 按组名服务器文件的逻辑对我不起作用。
ii) PHP Minify 使用 PHP CGI 处理和提供脚本,而我希望直接从 CDN 服务器提供我的缩小内容。
PHP Minify 是否有一些函数可以将组名映射到组合文件名,我可以在我的网页中使用这些函数来直接设置组合 JS 文件的 CDN 路径。例如
<?php
$groupName = array("onePage" => array('a.js','b.js','c.js','d.js');
?>
<script type="text/javascript" src="http://www.MYSTATICSERVER.com/js/<?php getMergedFileName($groupName)"></script>
而不是调用 PHP Minify 的 PHP 脚本来获取一个组的文件,这实际上是一个 PHP 页面调用,然后从先前生成的文件中提供 javascript 内容:
<script type="text/javascript" src="http://www.MYWEBSERVER.com/min/?g=onePage" ></script>
(我同意通过将不同的解决方案与自定义部署脚本和缩小工具(例如 ANT、FABRIC + YUICompressor/ClosureCompiler)相结合来实现其中大部分是可行的,但我正在寻找一个我可能错过的开发良好的可配置解决方案)