Cache和ETag让我疯狂。
如果我更改了一个页面并在浏览器上转到它,我所做的更改就不存在了。我必须刷新才能看到它们。这不可能是正常的。我可以让访问者回到我的主页面,而新文章条目没有反映出来。
我已经尝试过取消ETag以及所有这些。
我能做什么才能确保内容被缓存,但如果它们保存后已经更改,那么更新版本会显示?
YSlow测试也给了我这个警告:错误配置的ETag。如果我的htaccess为空,也会发生这种情况。这表明这是我主持人的问题,但我的两个网站都发生了同样的问题,主办方式不同。
这就是我的.htaccess的样子:
AddDefaultCharset UTF-8
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mypage.com [nc]
rewriterule ^(.*)$ http://www.mypage.com/$1 [r=301,nc]
ServerSignature Off
Options -Indexes
ExpiresActive On
ExpiresDefault A606990
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A606990
</FilesMatch>
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A606990
</FilesMatch>
<FilesMatch "\.(txt|js|css)$">
ExpiresDefault A606990
</FilesMatch>
<FilesMatch "\.(xml)$">
ExpiresDefault A86412
</FilesMatch>
请有人帮我一把,我已经阅读了很多关于这个主题的文章,但似乎没什么用。
答案 0 :(得分:1)
如果您使用apache
,您可能没有正确设置ETag配置。请查看ETag
Property in apache
你可能想要像
这样的东西FileETag MTime Size
在您的配置中,现在使用mod_include
生成的任何内容都不会为其生成Etags
!
答案 1 :(得分:0)
好的,我有一个解决方案,希望它可以帮到某个人。对于要显示任何更改而不必刷新的文件类型,它只是关于ExpiresDefault到A0。