我用Chrome测试了我的网站并得到以下建议:
The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:
style.css
jquery.marquee.js
jquery.marquee.css
logo.png
我该如何设置这些文件的缓存过期时间?
设置缓存过期时间的一种方式是使用 .htaccess 文件。
以下代码将为各自的文件类型设置过期时间,例如,对于 CSS 文件,过期时间为 14 天。
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType image/x-ico "access plus 1 year"
ExpiresByType image/jpg "access plus 14 days"
ExpiresByType image/jpeg "access plus 14 days"
ExpiresByType image/gif "access plus 14 days"
ExpiresByType image/png "access plus 14 days"
ExpiresByType text/css "access plus 14 days"
</IfModule>
根据Yahoo!网站加速最佳实践,您应该添加到 Expires或Cache-Control头 并 配置ETags。
如何配置服务器以执行此操作取决于远比问题中提供的信息更多的信息。
如果这个问题涉及到缓存Tomcat应用程序目录中的JavaScript或CSS,您可能需要查看/conf/web.xml文件。
通常在此处提供的MIME映射为:
<mime-mapping>
<extension>js</extension>
<mime-type>application/javascript</mime-type>
</mime-mapping>
在Apache中,默认指令是
ExpiresByType text/javascript "access plus <specify your timeframe>"
您可以将Apache指令更改为application/javascript,或更改Tomcat MIME映射为text/javascript,这将设置缓存过期时间。
style.css
更改为style.css?v1.1
或重命名文件来解决此问题。 - Shankar Prakash G