Add Expires headers
There are 21 static components without a far-future expiration date.
http://static.doers.lk/examples-offline.css
http://static.doers.lk/kendo.common.min.css
http://static.doers.lk/kendo.default.min.css
http://static.doers.lk/style.css
http://static.doers.lk/jquery.min.js
http://static.doers.lk/kendo.web.min.js
http://static.doers.lk/console.js
http://static.doers.lk/sprite.png
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
https://fbexternal-a.akamaihd.net/safe_image.php?...
http://static.doers.lk/favicon.PNG
当我使用雅虎YSLOW测试网站时,它说上面按摩。所以我不知道如何添加过期的标题。有什么帮助将不胜感激?
答案 0 :(得分:60)
添加这些标头的最简单方法是.htaccess
文件,它会为您的服务器添加一些配置。如果资产托管在您无法控制的服务器上,那么您无能为力。
请注意,某些托管服务提供商不允许您使用.htaccess
个文件,因此请检查其条款是否有效。
HTML5Boilerplate项目有一个很好的.htaccess
文件,涵盖了必要的设置。请在Github repository
这些是重要的部分
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".
<IfModule mod_expires.c>
ExpiresActive on
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Media: images, video, audio
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# CSS and JavaScript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
</IfModule>
他们有documented what that file does,最重要的是你需要在他们更改时重命名你的CSS和Javascript文件,因为访问者的浏览器一旦被缓存就不会再检查一年。
答案 1 :(得分:9)
尝试这个解决方案,它对我来说很好用
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml text/x-js text/js
</IfModule>
## EXPIRES CACHING ##
答案 2 :(得分:3)
您可以在htaccess文件或vhost配置中添加它们。
见这里:http://httpd.apache.org/docs/2.2/mod/mod_expires.html
但除非您拥有这些域名,否则他们是您的控制权。
答案 3 :(得分:0)
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
答案 4 :(得分:0)
在ASP.NET中,有一个类似的对象,您可以在WebFormsUserControls中使用“缓存部分”,以便在一段时间内缓存页面的对象并节省服务器资源。这也称为片段缓存。
如果将此代码包括在用户控件的顶部,则该控件的版本在输出缓存中存储150秒。
您可以创建自己的控件,其中包含所需特定资源的过期标头。
<%@ OutputCache Duration="150" VaryByParam="None" %>
本文对它进行了完整的解释: Caching Portions of an ASP.NET Page