我有一个wep页面:http://uranussup.info。我跑了一个yslow测试。有很多请求(20),它说“内容不可缓存”和“没有过期日期”。我该如何解决?
答案 0 :(得分:0)
您需要配置服务器,使其以不同的HTTP headers为您的网站内容提供服务。
来自雅虎! Best Practices for Speeding up Your Web Site:
添加过期或缓存控制标头
此规则有两个方面:
- 对于静态组件:通过设置far实现“永不过期”策略 未来
Expires
标题- 对于动态组件:使用适当的
Cache-Control
标头 用条件帮助浏览器 请求网页设计越来越丰富 更丰富,这意味着更多的脚本, 样式表,图像和Flash中的 页。第一次来访 页面可能必须生成几个HTTP 请求,但使用Expires 你做这些组件的标题 缓存。这避免了不必要的 后续页面上的HTTP请求 观点。最常见的是过期标题 与图像一起使用,但它们应该是 用于所有组件,包括 脚本,样式表和Flash 组件。
浏览器(和代理)使用缓存来 减少HTTP的数量和大小 请求,加载网页 快点。 Web服务器使用Expires 在HTTP响应中的标头告诉 客户端组件可以有多长 缓存。这是一个遥远的未来 标题,告诉浏览器这个 回应在4月之前不会过时 15,2010。
Expires: Thu, 15 Apr 2010 20:00:00 GMT
如果您的服务器是Apache,请使用 ExpiresDefault指令设置 到期日相对于 当前的日期。这个例子了 ExpiresDefault指令设置 到期日期为10年 请求的时间。
ExpiresDefault "access plus 10 years"
请记住,如果你使用遥远的未来 过期标题你必须改变 每当组件的文件名 组件变化。在Yahoo!我们经常 使这一步成为构建的一部分 进程:嵌入版本号 在组件的文件名中,用于 例如,yahoo_2.0.6.js。
使用远期的Expires标头 仅在用户之后影响页面视图 已经访问过您的网站。它有 对HTTP的数量没有影响 用户访问您的网站时的请求 这是第一次和浏览器的 缓存是空的。因此影响 这种性能提升 取决于用户打你的频率 带有固定缓存的页面。 (一个“准备好了 缓存“已包含所有 页面中的组件。)我们测量过 这在雅虎!并找到了数量 带有固定缓存的页面视图是 75-85%。通过使用远期的Expires 标题,你增加了数量 由...缓存的组件 浏览器并在后续页面上重复使用 视图没有发送单个字节 通过用户的互联网连接。
答案 1 :(得分: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>