在提供服务之前,我使用JSMin的PHP脚本从我的javascript和css文件中删除注释和空格。如果我设置
<script src="jsmin.php?file=myfile.js">该文件不会被缓存,因为不会为脚本检查Last-Modified HTTP标头。因此,为了通过JSMin运行文件并(希望)启用缓存,我使用具有以下设置的.htaccess:
RewriteEngine on
RewriteRule ^.*$ jsmin.php?file=%{REQUEST_FILENAME} [NC,L]然后我可以使用:
<script src="myfile.js">并获得JSMin的效果。
Apache仍然不会提供带有Last-Modified标头的文件,因此浏览器仍然不会缓存该文件。有没有一种方法可以让我在Apache中查看if - modified - been头,并且只在相关文件在适当的时间之后被修改的情况下才提供JSMin脚本?否则,我希望浏览器使用缓存版本。
发布于 2009-08-20 18:04:52
为什么不在部署之前压缩文件呢?在运行时压缩它似乎更复杂,速度也更慢。
我使用http://developer.yahoo.com/yui/compressor/
发布于 2009-08-21 03:13:10
+1表示构建过程。部署应该是自动化的。这使得结果是可预测的。
此外,在url中使用这样的文件路径会要求某人取消对它的引用,并加载他们不应该使用的文件。考虑一下:
<script src="jsmin.php?file=../../../../../../../../../../../../../../etc/passwd">如果您的脚本只是将其直接传递到命令行,那么您就有麻烦了。
https://stackoverflow.com/questions/1307865
复制相似问题