令人沮喪。 :PTomcat正在爲JS和CSS文件設置no-cache
真的希望這些緩存在用戶的瀏覽器上,但它是設置它。
的Cache-Control:無店鋪,無緩存, 必重新驗證,檢查後= 0, 前檢查= 0
如何停止?
我試着在我們的設置中查找與緩存相關的任何內容。根據文檔使用所有默認值,這意味着它是允許的。像JS和CSS的靜態文件是不同的?
編輯: 我注意到一些JS文件被允許緩存,因爲Chrome說他們是從緩存中「檢索」。但是沒有CSS文件。
令人沮喪。 :PTomcat正在爲JS和CSS文件設置no-cache
真的希望這些緩存在用戶的瀏覽器上,但它是設置它。
的Cache-Control:無店鋪,無緩存, 必重新驗證,檢查後= 0, 前檢查= 0
如何停止?
我試着在我們的設置中查找與緩存相關的任何內容。根據文檔使用所有默認值,這意味着它是允許的。像JS和CSS的靜態文件是不同的?
編輯: 我注意到一些JS文件被允許緩存,因爲Chrome說他們是從緩存中「檢索」。但是沒有CSS文件。
或者您可以讓servlet在響應中設置緩存過期和上次修改的標頭。
我也推薦GZIP壓縮JavaScript和CSS。 Tomcat的/ examples目錄中帶有一個壓縮過濾器,您可以通過它導入適當的URL。
您應該結合並縮小JavaScript和CSS以獲得更好的性能。
所有這些都是來自Firefox的YSlow插件的建議。您可以看到這些措施使用Firebug插件的效果如何。
<FilesMatch "\.(js|css)$">
ExpiresDefault "now plus 1 week"
</Files>
在你的Apache配置應該做的伎倆,只要它是 Tomcat配置的東西后某處。
我們沒有使用Apache,或者至少我沒有權限訪問生產機器。 – bobber205 2011-04-21 22:44:11
你可以編寫你自己的緩存過濾器,並在你的web xml中配置它。
Here您會發現一個基本但很好的示例,說明如何實現它。
<filter>
<description>Set HTTP headers for a mapping.</description>
<filter-name>CacheFilter</filter-name>
<filter-class>your.package.CacheFilter</filter-class>
<init-param>
<description>Adds an expires header to the response</description>
<param-name>header</param-name>
<param-value>Expires: Thu, 26 Apr 2012 20:00:00 GMT</param-value>
</init-param>
</filter>
然後映射它(它適用於響應):
在web.xml
你聲明你的過濾器
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.js</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.css</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
您可能還需要使用壓縮過濾器(同樣的方式) ,以減少從服務器發送的數據的負載。這implementation of a gzip filter多年來爲我工作(沿緩存過濾器),從來沒有任何問題。
Tomcat附帶一個壓縮過濾器;我會推薦使用它。還有一個緩存過濾器?你擔心線程安全嗎?我會。 – duffymo 2011-04-23 00:22:35
我們已經gzipping CSS和Javascript文件。我們也在考慮縮小我們的JS。 – bobber205 2011-04-21 22:43:41
原來這是這裏描述的最明顯的地方。 :D不知道我怎麼可能錯過它嘿嘿。我們正在設定我想要自己手動離開的選項。 – bobber205 2011-04-22 23:48:24