设置“过期时间”告诉下载这些文件的浏览器,在特定时间段内不需要再次请求它们。换句话说,如果缓存中存在文件,请使用缓存。这可以减少服务器的压力,并加快访问者的页面加载速度。
# BEGIN EXPIRES
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 days"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-icon "access plus 1 year"
</IfModule>
# END EXPIRES
我想补充一点,如果你使用的是类似的东西,请在资源的文件名中嵌入日期戳或版本标识符。这样,如果你更新了一个资源,你就可以增加指示器,以便访问者加载新资源,而不是继续使用旧资源直到过期时间到期。
是的!我发现这对 flash 文件至关重要。
你能提供一个代码片段来做到这一点吗?听起来是个好主意......但我不知道怎么做。
上面两位说的这个增量方法可能比你想象的要简单。
它是这样的
[link rel="stylesheet" href="http://path/style.css?v=001" type="text/css" /]
熟悉 PHP 的人会认识到 v 参数和“001”作为值。那么......PHP 与 CSS 究竟有什么关系呢?
答案:什么都没有!
但是浏览器并不知道这一点,它会认为 style.css?v=001 与 style.css?v=002 不同。所以,使用 Chris Coyier 上面的代码片段,将 v 参数附加到 URL,只要 v 参数发生变化,缓存/setExpires 就会被忽略并重置为 0。
此外,如果你在 WordPress 中使用这个,我建议不要在 header.php 中手动设置它,而是在 functinons.php 中创建一个类似这样的函数
[?php
function version(){
$version = "001";
return $version;
}
?]
# header.php
href="style.css?v=[?php echo version(); ?]"
这就是 Google 的说法
不要在静态资源的 URL 中包含查询字符串。
大多数代理,特别是 Squid 3.0 之前的版本,即使响应中存在 Cache-control: public 头部,也不会缓存 URL 中包含“?”的资源。要为这些资源启用代理缓存,请从静态资源的引用中删除查询字符串,而是将参数编码到文件名本身。
你需要指定过期路径吗?
我一直很好奇——有没有一种方法可以关闭这段代码,例如,如果你决定更新你的 JavaScript 或图像文件?我听说过你必须重命名它们,但是有没有办法绕过这个,或者你必须等待缓存时间到期?
感谢 CSS-Tricks.com 团队,感谢你们的帮助,你们的网站资源丰富。我学到了很多技巧和窍门,并且还在学习。
我有一个问题需要帮助。我无法在 Google Chrome 浏览器中显示来自我网站的图像。它在 IE 和 Firefox 中可以正常工作。当我研究这个问题时,我了解到我们必须为图像设置过期时间。有人可以指导我如何在 CSS 中或其他任何方式设置图像的过期时间吗?
感谢你们的所有支持。
这段代码在我的网站上不起作用。告诉我为什么?
面对手掌@ 问题送达
非常棒的代码片段。
这个网站是一个很棒的资源。毫无疑问!
只是想问一个简单的问题:“ExpiresByType application/x-javascript” 和 “ExpiresByType application/javascript” 之间有什么区别?
“x-javascript” 究竟是什么?
谢谢
jpg 被遗漏了文件类型列表,将它添加进去可能会节省一些困惑的人的时间。我花了几个小时才注意到!还是有什么我不知道的?jpeg 和 jpg 相同吗?好吧,我想它们是相同的,但它们在服务器上是相同的吗?我有点疑问。
jpg 被遗漏了文件类型列表,将它添加进去可能会节省一些困惑的人的时间。我花了几个小时才注意到!还是有什么我不知道的?jpeg 和 jpg 相同吗?好吧,我想它们是相同的,但它们在服务器上是相同的吗?我有点疑问。
好主意。感谢分享。
我在几个网站上使用过这段代码,但是它没有被识别出来。
例如,我在 Yslow 中看到的是
在添加过期时间头部的评分中获得 F 级
http://mywebsite.com/wp-content/themes/theme/scripts.js
是什么阻止这段代码被添加到过期规则中?
谢谢,
嗨,我有一个扩展名为 .css.php 的文件,它没有应用上面的规则。
我应该对这个文件做什么?
穆罕默德,
确保你的 PHP 以正确的 MIME 类型发送 CSS。通常情况下,在脚本的顶部使用
header("Content-type: text/css");
。这太原始了——而且有问题
它需要相对于文件修改时间,假设你上传时完整保留了这些信息
感谢“设置过期时间”的提示。由于这个提示,我的网站在 gtmetrix 上的评分超过了 A 级。
此页面允许你检查任何 Web 服务器发回的 HTTP 头部,以便你可以检查页面过期时间、缓存设置和服务器版本。
http://web.forret.com/tools/analyze.aspx?url=
我已经为我的网站设置了过期时间。非常感谢。现在页面速度显示良好。
你在网站上是如何设置过期时间的?
如何在 blogspot.com 博客中设置这个?
我无法访问 .htaccess 文件。
我可以将这些设置为我头部中的元标签吗?
谢谢!
我在 .htaccess 文件中添加了 CSS 的规则
ExpiresByType text/css “access plus 1 week”
但是 CSS 文件使用的是类似 front.css?ver=4.1 的版本
而且它没有反映任何过期时间
以下是详细信息
有 48 个没有远期过期时间的静态组件。
@Anand Vaishnav 这些标签不会在你的文件 URL 上添加任何过期时间。它只会在这段时间之后请求它们。你这种情况是一周。
感谢您的回复:) 嗯,这降低了我的性能评分,所以我有点担心。再次感谢:) 如果我从 URL 末尾删除版本信息,会有什么问题吗?
我无法访问我的 .htaccess 文件。
有没有办法在网页中直接添加一些代码,仅针对我的 .jpg 图像?
如果有,你能给我一个示例代码吗?
拜托了......?
我使用了 .htaccess 过期时间,但 Google 页面速度仍然显示
考虑修复
利用浏览器缓存
在静态资源的 HTTP 头部中设置过期日期或最大使用期限,会指示浏览器从本地磁盘而不是网络加载之前下载的资源。
并在其下方列出了所有图像和 js,但 css 没有显示在列表中。知道哪里出问题了吗?这是我的代码
BEGIN EXPIRES
ExpiresActive 开启
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/plain “访问后一个月”
ExpiresByType image/gif “访问后一个月”
ExpiresByType image/png “访问后一个月”
ExpiresByType image/jpg “访问后一个月”
ExpiresByType image/jpeg “访问后一个月”
ExpiresByType text/html “访问后一个月”
ExpiresByType text/php “访问后一个月”
ExpiresByType text/x-javascript “访问一个月”
ExpiresByType application/x-javascript “访问后一个月”
ExpiresByType application/javascript “访问后一周”
ExpiresByType application/x-icon “访问后一年”
ExpiresDefault “访问后一个月”
END EXPIRES
此链接可能有助于您优化 .htaccess 文件,以便在 Google 页面洞察中获得更好的分数。 http://community.mybb.com/thread-121754.html
希望这有帮助 >.<
RewriteEngine 开启
BEGIN Mod Header
ExpiresActive 开启
启用 Expires 并将默认过期时间设置为 10 年
END Mod Header
BEGIN Cache Control
Header set Expires “Thu, 15 Apr 2012 20:00:00 GMT”
Header unset ETag
FileETag None
#END Cache Control
Expires 缓存
ExpiresActive 开启
ExpiresByType image/jpg “访问后一年”
ExpiresByType image/jpeg “访问后一年”
ExpiresByType image/gif “访问后一年”
ExpiresByType image/png “访问后一年”
ExpiresByType text/css “访问后一个月”
ExpiresByType text/html “访问后一个月”
ExpiresByType application/pdf “访问后一个月”
ExpiresByType text/x-javascript “访问一个月”
ExpiresByType application/x-shockwave-flash “访问后一个月”
ExpiresByType image/x-icon “访问后一年”
ExpiresDefault “访问后十年”
结束
嘿,朋友们!
我想在 .htaccess 中添加特定 .js cdn 的过期时间。
cdn 在这里
http://w.sharethis.com/button/st_insights.js
请告诉我如何操作?
我正在加速我的网站并在 .htaccess 中进行利用浏览器缓存。
您好!
是否可以在元链接中添加一个可变的过期时间?
感谢“设置过期时间”的提示。由于这个提示,我的网站在 gtmetrix 上的评分超过了 A 级。
这里有三种可能的代码
1.
Header set Cache-Control “max-age=604800, public”
2.
ExpiresActive 开启
ExpiresDefault A2592000
3.
ExpiresActive 开启
ExpiresByType image/jpg “访问后一年”
ExpiresByType image/jpeg “访问后一年”
ExpiresByType image/gif “访问后一年”
ExpiresByType image/png “访问后一年”
ExpiresByType text/css “访问后一个月”
ExpiresByType text/html “访问后一个月”
ExpiresByType application/pdf “访问后一个月”
ExpiresByType text/x-javascript “访问一个月”
ExpiresByType application/x-shockwave-flash “访问后一个月”
ExpiresByType image/x-icon “访问后一年”
ExpiresDefault “访问后一个月”
谢谢...