2013-02-06 118 views
5

我在利用瀏覽器緩存方面遇到問題。 我創建了這個.htaccess文件,並在我的服務器上使用它,但它似乎沒有工作,我從這裏複製了這個「http://www.samaxes.com/2011/05/improving-web-performance-with-apache-and-htaccess/」。 我最喜歡做一個基本的錯誤,所以任何幫助都會很好。 這裏有一些細節。我在一個子域名上工作讓我們稱之爲「子」和主域名「示例」。 所以我想在http://sub.example.com/的一切工作的htaccess文件。 我的服務器上我放在子的主目錄下的.htaccess文件是獨立於主要的一個,例如。htaccess利用瀏覽器緩存不起作用

我正在與mod_headers中都與指定mod_expires還啓用了一個Apache2的服務器。

乾杯。

<ifModule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/html text/xml text/css text/plain 
AddOutputFilterByType DEFLATE image/svg+xml application/xhtml+xml application/xml 
AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml 
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript application/json 
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-otf 
AddOutputFilterByType DEFLATE font/truetype font/opentype 
</ifModule> 
<ifModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault "access plus 5 seconds" 
ExpiresByType image/x-icon "access plus 2592000 seconds" 
ExpiresByType image/jpeg "access plus 2592000 seconds" 
ExpiresByType image/png "access plus 2592000 seconds" 
ExpiresByType image/gif "access plus 2592000 seconds" 
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" 
ExpiresByType text/css "access plus 604800 seconds" 
ExpiresByType text/javascript "access plus 216000 seconds" 
ExpiresByType application/javascript "access plus 216000 seconds" 
ExpiresByType application/x-javascript "access plus 216000 seconds" 
ExpiresByType text/html "access plus 600 seconds" 
ExpiresByType application/xhtml+xml "access plus 600 seconds" 
</ifModule> 
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$"> 
Header set Cache-Control "max-age=2592000, private" 
Header set Expires "Sun, 17 July 2013 20:00:00 GMT" 
</filesMatch> 
<filesMatch "\\.(css|css.gz)$"> 
Header set Cache-Control "max-age=604800, private" 
</filesMatch> 
<filesMatch "\\.(js|js.gz)$"> 
Header set Cache-Control "max-age=604800, private" 
</filesMatch> 
<filesMatch "\\.(xml|txt)$"> 
Header set Cache-Control "max-age=216000, private, must-revalidate" 
</filesMatch> 
<filesMatch "\\.(html|htm)$"> 
Header set Cache-Control "max-age=7200, private, must-revalidate" 
</filesMatch> 
FileETag None 
+0

凹凸還在看 – clonerworks

回答

5

看起來很混亂。

你也有多餘的規則像

ExpiresByType application/javascript "access plus 216000 seconds"

<filesMatch "\\.(js|js.gz)$"> 
Header set Cache-Control "max-age=604800, private" 
</filesMatch> 

嘗試使用清潔劑(和最新的)規則,從html5-boilerplate或者檢出所有 h5bp server configs

0

只使用這一個,然後試一試:

<ifModule mod_expires.c> 
ExpiresActive On 
ExpiresDefault "access plus 5 seconds" 
ExpiresByType image/x-icon "access plus 2592000 seconds" 
ExpiresByType image/jpeg "access plus 2592000 seconds" 
ExpiresByType image/png "access plus 2592000 seconds" 
ExpiresByType image/gif "access plus 2592000 seconds" 
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" 
ExpiresByType text/css "access plus 604800 seconds" 
ExpiresByType text/javascript "access plus 216000 seconds" 
ExpiresByType application/javascript "access plus 216000 seconds" 
ExpiresByType application/x-javascript "access plus 216000 seconds" 
ExpiresByType text/html "access plus 600 seconds" 
ExpiresByType application/xhtml+xml "access plus 600 seconds" 
</ifModule> 

贊@Anthony Hatzopoulos指出,你使用的是重複配置,它們可能是衝突的。當然,如果你喜歡,你可以使用「fileMatch」的方式,以及但事情是他們沒有漂亮的代碼。請注意,如果您使用「fileMatch」,那麼您不使用該代碼。