1

我有一个网页:http ://uranussup.info 。我运行了一个 yslow 测试。有很多请求 (20),上面写着“内容不可缓存”和“没有过期日期”。我该如何解决?

4

2 回答 2

0

这应该可以,但不确定它是“mod_expires.c”还是“mod_expires.so”——目前都不适合我。

<IfModule mod_expires.so>
  ExpiresActive On 
  ExpiresDefault "access plus 4 hours"
  ExpiresByType application/javascript "access plus 2 months"
  ExpiresByType application/javascript-x "access plus 2 months"
  ExpiresByType text/javascript "access plus 2 months"
  ExpiresByType image/jpg "access plus 2 month"
  ExpiresByType image/jpeg "access plus 2 month"
  ExpiresByType image/gif "access plus 2 month"
  ExpiresByType image/png "access plus 2 month"
  ExpiresByType text/css "access plus 2 months"
  ExpiresByType text/html "access plus 2 months"
  ExpiresByType text/xml "access plus 2 months"
  ExpiresByType text/plain "access plus 2 months"
  ExpiresByType image/x-icon "access plus 12 month"
  ExpiresByType image/icon "access plus 12 month"
  ExpiresByType application/x-ico "access plus 12 month"
  ExpiresByType application/ico "access plus 12 month"
</IfModule>
于 2012-01-09T01:18:36.463 回答
0

精简版

您需要配置您的服务器,以便它使用不同的 HTTP 标头为您的网站内容提供服务。

长版

来自雅虎!加快网站速度的最佳实践

添加过期或缓存控制标头

这条规则有两个方面:

  • 对于静态组件:通过设置远期Expires标头来实施“永不过期”策略
  • 对于动态组件:使用适当的Cache-Control标头来帮助浏览器处理条件请求

网页设计越来越丰富,这意味着页面中有更多的脚本、样式表、图像和Flash。首次访问您的页面的访问者可能需要发出多个 HTTP 请求,但是通过使用 Expires 标头,您可以使这些组件可缓存。这避免了对后续页面视图的不必要的 HTTP 请求。Expires 标头最常用于图像,但它们应该用于所有组件,包括脚本、样式表和 Flash 组件。

浏览器(和代理)使用缓存来减少 HTTP 请求的数量和大小,从而加快网页加载速度。Web 服务器使用 HTTP 响应中的 Expires 标头来告诉客户端组件可以缓存多长时间。这是一个遥远的未来 Expires 标头,告诉浏览器此响应在 2010 年 4 月 15 日之前不会过时。

Expires: Thu, 15 Apr 2010 20:00:00 GMT

如果您的服务器是 Apache,请使用 ExpiresDefault 指令设置相对于当前日期的到期日期。ExpiresDefault 指令的此示例将 Expires 日期设置为自请求时间起 10 年。

ExpiresDefault "access plus 10 years"

请记住,如果您使用未来的 Expires 标头,则必须在组件更改时更改组件的文件名。在雅虎!我们经常将此步骤作为构建过程的一部分:版本号嵌入在组件的文件名中,例如 yahoo_2.0.6.js。

只有在用户已经访问过您的网站后,使用远期的 Expires 标头才会影响页面浏览量。当用户第一次访问您的站点并且浏览器的缓存为空时,它对 HTTP 请求的数量没有影响。因此,这种性能改进的影响取决于用户使用已准备好的缓存访问您的页面的频率。(“准备好的缓存”已经包含页面中的所有组件。)我们在 Yahoo! 进行了测量。并发现使用准备好的缓存的页面浏览量为 75-85%。通过使用未来的 Expires 标头,您可以增加浏览器缓存并在后续页面视图中重复使用的组件数量,而无需通过用户的 Internet 连接发送单个字节。

于 2011-03-29T13:58:21.843 回答