2011-08-20 77 views
25

我測試我的網站與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 

如何設置這些文件的緩存過期?

+1

你在運行什麼服務器? –

回答

1

如果此問題屬於緩存JavaScript或css,它們是您的tomcat應用程序目錄的一部分;您可能想要檢查/conf/web.xml文件。

通常可在這裏的mime映射是
< MIME映射>
      <延伸> JS < /延伸>
      < mime類型>應用/ JavaScript的</MIME類型>
</mime-mapping >

在apache的默認指令是
      ExpiresByType文/ JavaScript的「訪問加<指定的時間內>」

你可能喜歡的Apache指令更改爲應用程序/ JavaScript或更改Tomcat MIME映射到文本/ JavaScript,這將設置過期到你的時間表。

17

設置緩存過期的一種方法是使用.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> 
+0

有沒有一種方法可以在需要時清除緩存?(例如更新後)? –

+3

@ Reign.85:您無法強制瀏覽器清除緩存。您可以使用'style.css'等文件對'style.css?v1.1'進行版本控制,或者重命名文件將解決問題。 –

+0

如果我從.htaccess中刪除了該代碼,那麼瀏覽器將獲得最新版本,而無需重命名文件(或使用版本控制)? –