對不起,這似乎與其他一些問題非常相似,但我已經查看了所有可以看到的相關帖子,但它們似乎沒有像我做;-)無法讓瀏覽器緩存內容
問題是,我無法獲得客戶端緩存的.js,.css和圖像從我的Apache2服務器上工作(我有兩個Ubuntu Apache/2.2.8和一個WAMP Apache在Windows下)。如果通過將Header Unset命令放入我的虛擬主機配置文件中,然後補充Caching指令(請參見下文)來關閉此功能,則可以使用默認設置,即可獲得良好的ETag風格的服務器主導緩存(304響應)它似乎並沒有被瀏覽器所尊重。
我可以看到使用Firebug瀏覽器知道一個緩存文件有效了幾個小時,但它仍然要求它。
任何有關如何調試的提示都會受到歡迎。
主機配置的相關部分如下所示:
<VirtualHost *:80>
DocumentRoot "C:/Projects/A2C/branches/CR7"
ServerName *
ServerAlias localhost ecomsvr0.dmclub.net
ErrorLog "c:\log\a2c.log"
CustomLog "c:\log\a2c-access.log" common
<Directory "c:\projects\A2C\branches\CR7">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
ExpiresDefault A36000
Header Set Cache-Control "max-age=7200"
Header Unset Etag
Header Unset Last-Modified
</Directory>
</VirtualHost>
我故意刪除Last-Modified/ETag,因爲我不想要條件請求 - 它們比擁有(比如說)1小時緩存更昂貴。理想情況下,我們都有,但我明白他們不能很好地協作(我想這是由於他們的獨立性)。不過,我會嘗試redbot的東西。乾杯。 – user648498 2011-03-08 09:16:10
剛剛嘗試過redbot,發現Firebug向我展示了完全相同的響應。該URL是http://ecom0.edge5.dmclub.net/test/integration/ajl/cachetest.html,我的願望是獲得簡單的客戶端緩存沒有條件請求(我們試圖減少延遲) – user648498 2011-03-08 09:23:38
謝謝發佈該網址。現在我的FF緩存響應並從緩存中提供,而不需要重新驗證。標題包括兩個驗證器現在(我假設你已經改變了配置)。有條件的請求:當資源不再新鮮時,它們僅由瀏覽器發送,但仍在緩存中。所以你不應該通過增加一個驗證器來放棄任何東西。如果您的後端無法使用HTTP/304(未修改)響應條件請求,則只需返回一個正常的200響應。 – alienhard 2011-03-08 13:44:57