2011-06-26 45 views
19

我想将总是最新的网站内容呈现给用户,但也要快速加载。通过研究,我发现有人建议使用缓存来加速加载。HTML - 高速缓存控制最大年龄

那么我需要在我的网站上添加什么内容才能在3天后“覆盖”缓存以显示最新内容?

+1

你使用wordpress吗? Drupal的?你有数据库吗?高速缓存不像你认为的那样干净和干燥...... – Trey

+0

对不起。我正在使用一个没有CMS的简单PHP网站。 – Uli

回答

11

有多种方法可以做到这一点 - 但您需要考虑到您需要缓存的内容以及不需要的内容。最大的速度提升可能来自确保您的资产(css,images,javascript)被缓存,而不是html本身。然后你需要考虑各种因素(这些资产多久改变一次,你将如何强迫用户下载新版本的文件来改变它?)。

通常作为网站发布过程的一部分,新文件(更新的文件)被赋予一个新文件名以强制用户浏览器重新下载该文件,但这只是一种方法。

您应该看看apache mod_expire以及使用.htaccess文件设置资产到期时间的功能。

http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

+0

我的理解是否正确,我只需要将此代码添加到我的服务器.htaccess文件以允许缓存文件3天? '#3 DAYS 标题集Cache-Control”max-age = 259200,proxy-revalidate“ '所有得到重新加载,对吗?来源:http://www.askapache.com/htaccess/apache-speed-cache-control.html – Uli

+0

答案假设我使用Apache作为服务器,如果我使用Ruby应用程序?这不起作用 – Joseph

+0

这里是一篇博文,其中详细解释了如何在html和您最喜爱的编程语言中设置缓存标头http://docs.fastly.com/guides/22951283/26628787 – Joseph

0

由于每YSlow recommendations你可以配置你的Web服务器的ExpiresCache-Control HTTP头添加到这将导致用户代理缓存指定的持续时间响应的响应。

1

如所提到的Expires和Cache-Control头通常是掺入约信息生存期信息的最好方式。

由于客户对解释这些具有缓存功能的信息代理不太可靠,如squid,清漆或此类解决方案是大多数人的首选。您还需要考虑是否仅缓存静态内容(如图像,样式表,...)或动态生成的内容。

15

Cache-Control标头用于HTTP 1.1中以控制高速缓存的行为。 max-age指令用于指定(以秒为单位)内容的最大使用期限(即内容在某段时间内不会更改)。所以,如果你知道你的内容将不会3天改变,你希望你的服务器中添加以下HTTP标头:

Cache-Control: max-age=259200 

(259200 = 60 X60米X 24小时X 3D)

要做到这一点在PHP中,这一行添加到您的输出:

header('Cache-Control: max-age=259200'); 

这里阅读的头功能的详细信息:

+1

对于IIS,您可以将其设置为使用'[ - ] [d。] hh:mm:ss [.ff]'格式的静态内容(保持动态内容动态)在web.config中,它应该放在'

相关问题