如何为css / js文件设置缓存

时间:2010-03-29 10:26:04

标签: css javascript

我必须使用我在网站中使用的css文件和js文件的缓存。 我的网站在共享托管服务器上运行。服务器无法做任何事情。

那么对于js和css文件使用缓存和压缩的解决方案是什么。

3 个答案:

答案 0 :(得分:43)

如果您使用的是Apache,我会从这里开始。

压缩和缓存是不同的事情。

对于压缩,PHP Minify或YUI Compressor非常棒。如果所有其他方法都失败了,TextMate有一个很好的Javascript工具包,可以让你压缩你的代码。您可以手动压缩代码,然后上传代码,并撤消压缩以使源恢复到可读状态。我不推荐这个,但我之前做过。

要进行缓存,请阅读askapache.com网站。有几种简单的方法可以打开mod_expires,mod_compress和其他模块。由于您在共享主机上,这里有一些警告,因为主机可能已关闭某些Apache模块。我使用过GoDaddy,他们关闭了mod_expires。有关Apache模块的主机特定信息,请参阅主机支持文档。

如果你运气好的话,重要的是你可以:

<IfModule mod_deflate.c>
  SetOutputFilter DEFLATE
  SetEnvIfNoCase Request_URI \
  \.(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpg "access 2 month"
  ExpiresByType image/gif "access 2 month"
  ExpiresByType image/jpeg "access 2 month"
  ExpiresByType image/png "access 2 month"
  ExpiresByType text/css "access 2 month"
  ExpiresByType application/x-javascript "access plus 2 month"
  ExpiresByType text/javascript "access plus 2 month"
  ExpiresByType application/javascript "access plus 2 month"
  ExpiresByType image/x-icon "access plus 12 month"
  ExpiresByType image/icon "access plus 12 month"
  ExpiresByType application/x-ico "access plus 12 month"
  ExpiresByType application/ico "access plus 12 month"
</IfModule>`

将此代码放入.htaccess文件中,打开FireFox,然后打开Firebug,然后打开YSlow。运行YSlow测试,它会告诉您缓存是否正常工作。

答案 1 :(得分:7)

如果您可以使用PHP5,请使用Minify ...它将压缩,混淆和缓存您的HTML / CSS而无需更改脚本(JS / CSS)源代码。

如果您不能在服务器上使用PHP5,请压缩&amp;使用YUI Compressor对文件进行模糊处理,并使用 .htaccess 缓存文件:

<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>

答案 2 :(得分:-1)

您确实需要服务器的访问权限来管理服务器呈现给浏览器的http headers

相关问题