我有一个网络开发问题。
有时,如果我在网络服务器上放置新版网页,并且我浏览到此网页,则不会显示新页面。而是显示旧页面,从先前浏览到网页的缓存页面。
如何让新页面始终显示?我可以使用某种标签吗?
答案 0 :(得分:0)
是的,如果您使用Apache,则可以指定缓存以及在.htaccess中缓存单个文件的时间。通常,您将禁用动态内容的缓存,并将缓存限制设置为通常的图像更新速率和静态html。在我的网站上,我每天都会重新生成静态html,因此在.html上设置缓存为24小时,并在PHP脚本上禁用缓存(这些限制以秒为单位指定 - 1天= 86,400秒):
# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|js|css)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>
# Set up 1 Day caching on site generated files
<FilesMatch "\.(xml|txt|html)$">
ExpiresDefault A86400
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
# Force no caching for dynamic php
<FilesMatch "\.php$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
如果您只是在测试对html文件的更改时遇到问题,请记住,无论缓存设置如何,您都可以强制浏览器重新加载页面 - Windows下的[Ctrl] [F5]。
答案 1 :(得分:0)
您可以通过网络服务器设置更改缓存行为,也可以直接在http标头中设置。本文介绍如何为IIS创建它:http://support.microsoft.com/kb/247404/en-us
答案 2 :(得分:0)
您可以使用一些标签
请参阅http://www.i18nguy.com/markup/metatags.html
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
Web服务器也可以设置类似的HTTP标头。
答案 3 :(得分:-1)
我认为服务器仍然没有更新网站。只需等待,看它是否更新。