2012-10-14 36 views
5

我無法獲得JS文件的過期頭文件正常工作..它工作正常,如CSS文件!頭文件失效的javascript文件不能正常工作

有人能告訴我我做錯了什麼嗎? :(

htaccess的

ExpiresActive on 
ExpiresDefault A0 
ExpiresByType image/gif A29030400 
ExpiresByType image/jpeg A29030400 
ExpiresByType image/png A29030400 
ExpiresByType text/css A29030400 
ExpiresByType text/javascript A29030400 
ExpiresByType application/x-javascript A29030400 

在CSS文件頭

Cache-Control max-age=29030400 
Connection Keep-Alive 
Date Sun, 14 Oct 2012 12:06:45 GMT 
Etag "be-4cbcf2ad48b40" 
Expires Sun, 15 Sep 2013 12:06:45 GMT 
Keep-Alive timeout=5, max=97 
Server Apache/2.4.2 (Win64) PHP/5.4.3 

頭的JS文件

Cache-Control max-age=0 
Connection Keep-Alive 
Date Sun, 14 Oct 2012 12:06:45 GMT 
Etag "1ad-4cc00d069f493" 
Expires Sun, 14 Oct 2012 12:06:45 GMT 
Keep-Alive timeout=5, max=99 
Server Apache/2.4.2 (Win64) PHP/5.4.3 
+2

作爲測試,htaccess文件中的值是實際顯示的在CSS的標題? EG:如果您將A29030400更改爲其他內容,您是否看到這反映在服務的CSS標題中? 此外,作爲另一個測試,如果你嘗試以不同的方式格式化的htaccess會發生什麼:< 「\(JS)$」 filesMatch>'... ExpiresByType文/ CSS A29030400 ExpiresDefault A29030400 ' ? – Tr1stan

+0

添加答案.. reg exp解決方案與filesMatch的作品! :D – clarkk

+0

很高興幫助,答案補充說。 – Tr1stan

回答

7

嘗試在<filesMatch標籤包裝的ExpiresDefault,而不是使用ExpiresByType

<filesMatch "\.(js)$"> 
    ExpiresDefault A29030400 
</filesMatch> 
9

(無法評論,但...) 我運行以下設置和它的作品。

ExpiresByType text/js "access plus 1 years" 
ExpiresByType text/javascript "access plus 1 years" 
ExpiresByType application/javascript "access plus 1 years" 
ExpiresByType application/x-javascript "access plus 1 years" 

應工作

乾杯 羅賓

0

您可能需要激活與Apache裏面的過期模塊主機配置。

以我爲例,我加

ExpiresActive On 

第一ExpiresByType指令之前權利,它立即開始工作(一個Apache重新加載後)。

我不知道爲什麼這需要明確啓用。在其他服務器上,只要啓用了a2enmod(可能與Apache 2.2,但無法找到清晰模式)的mod,它就會用於工作。