亲爱的叠朵花,
我觉得我的问题一定很普遍,这使我无法找到解决方案的事实更加令人困惑。也许是我差劲的搜索能力造成的。
我负责维护我妻子的网站,该网站主要由在线系列组成。该站点使用php从MySQL数据库生成页面(我想这会使它动态生成)。每次添加新的情节时,我都需要更新几个页面(索引和倒数第二个情节页面),并带有指向该新情节的链接和图像。明显的问题是网站的缓存版本将没有该更新的链接。除非访问者重新加载这些更新的页面之一。一种解决方法是使这两个页面不可缓存,但这似乎有些残酷。
我已经阅读了有关Cache-Control的一些资源,但仍然无法确定在这种特定情况下哪些参数将是有用的。由于我不知道,下一集何时发布,所以我不能使用“ Expires”或“ max-age”(或者可以吗?)。同样,由于需要重新加载整个页面,因此不能像更改图像一样更改文件名。我理想地要做的是比较缓存版本的日期和文件的最后修改日期,如果缓存版本早于文件,则强制浏览器加载新版本。但是我愿意接受其他方法。
我同样乐于修改htaccess文件或添加php标头。任何建议将不胜感激。
非常感谢!
在PHP中,只需发送正确的标头即可:
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
标头控制浏览器如何处理各种事情,从缓存的时间到发送的信息类型(html,图像等)。
每当有人请求该页面时,将标题放到那里都会强制进行更新。
如果页面真的太大而不能每次发送(真的吗?真的那么大吗?),为什么不只是将缓存设置为每天一次或每周一次过期-值太短,以至于人们不会这样做?不要错过任何东西,但不要普通,所以他们下载的内容不会太多。
另一种完全不同的方法可能实际上是让您的代码吐出从未被缓存的HTML页面-一些HTML不能发送太多的kbs数据,这可以节省服务器收到太多请求的时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句