4

复制:

为什么我的 javascript & css 没有缓存?

我注意到我只收到图像的 304 HTTP 代码(缓存内容),而不是 JavaScript 或 CSS。

我的 .htaccess 文件是:

Options -Indexes
Options +FollowSymLinks  

# Enable ETag
FileETag MTime Size

# Set expiration header
ExpiresActive on
ExpiresDefault "access plus 1 week"

# Compress some text file types
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript text/javascript application/javascript application/json

# Deactivate compression for buggy browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Set header information for proxies
Header append Vary User-Agent

任何人都知道为什么只有图像被缓存而不是我的 JavaScript 或 CSS?

4

4 回答 4

2

使用像 Fiddler 这样的窥探代理来查看浏览器对服务器的请求以及返回的标头。

您应该会看到返回“200”状态的初始请求。然后您应该会看到来自浏览器的请求以验证其缓存。返回标头应表明浏览器缓存仍然良好,不应包含页面内容。

于 2009-05-08T18:48:29.630 回答
1

使用 Firebug for Firefox,查看网络选项卡。重新加载时您不会看到缓存内容的网络连接。

于 2009-05-08T18:49:33.433 回答
1

我通常使用这个插件:

https://addons.mozilla.org/en-US/firefox/addon/3829

它使您可以监视 HTTP 请求,如果没有请求该文件,则将其缓存。此外,如果您仍然遇到缓存问题,请确保您没有使用时髦的代理。(我遇到了代理丢失 ETag 所以它永远不会缓存的问题)

于 2009-05-08T18:52:24.583 回答
0

I'll use either Firebug or TamperData to monitor HTTP request. The latter is useful in the case where there might be redirects involved, which Firebug won't necessarily tell you.

于 2009-05-08T19:55:07.350 回答