问题在于:我们有很多Javascripts和很多CSS文件,我们宁愿将其缩小.缩小很简单:设置YUI Compressor,运行Ant任务,然后吐出缩小的文件,我们将其保存在原件旁边.
因此,我们最终在DocumentRoot中的某个位置结束了以下目录结构:
/ /js /min foo-min.js bar-min.js foo.js bar.js quux.js /css ...
现在我们需要的是Apache服务于min子目录中的文件,如果它们的缩小版本不可用,则回退到提供未压缩文件.最后一个问题是我无法解决的问题.
例如:假设我们有一个请求example.com/js/foo.js -在这种情况下的Apache应该发送的内容/js/min/foo-min.js.没有缩小的quux.js,所以请求/js/quux.js回报/js/quux.js本身,而不是404.最后,如果没有/js/fred.js,它应该有404结束.
其实,我设置建立在unminified文件不会被部署在生产服务器上这样的脚本,但这种配置可能仍是一个整合服务器和开发机器有用.
这是最终工作的配置:
/js/.htaccess:
RewriteEngine On RewriteBase /js RewriteCond %{REQUEST_URI} ^/js/((.+)\.js)$ RewriteCond %{DOCUMENT_ROOT}/js/min/%2-min.js -f RewriteRule ^(.+)$ min/%2-min.js [L]
对于css目录也是如此.