2012-12-20 32 views
41
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它说上述massage.So我不知道如何添加过期headers.any帮助将不胜感激?添加过期标题

+0

希望疗法是在documenattion自己的网站 –

+1

谷歌'PHP添加过期headers' –

+0

我假设'static.doers。 lk'是你自己的网站? –

回答

54

添加这些标头的最简单方法是向您的服务器添加一些配置的.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文件时,他们改变,因为一旦他们被缓存,访问者的浏览器将不会再检查一年。

+0

我想在github中添加完整的代码到htaccess – sami

+0

不,只是“Expires标题”部分。甚至只是我粘贴到我的答案中的部分。请确保您完全理解它的作用,特别是为什么[缓存破坏](https://github.com/h5bp/html5-boilerplate/blob/v4.0.2/doc/htaccess.md#cache-busting)需要一次你用这个。 – pixelistik

+0

我还有一个问题。你能给我一个答案吗? – sami

7

尝试此解决方案,它是对我工作的罚款

## 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 ## 
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>