2014-01-06 49 views
-1

我在共享的託管Linux服務器上,所以我必須使用.htaccess。我忙於壓縮和緩存事物。我其實有兩個問題,但首先是我的.htaccess文件中的緩存設置。使用.htaccess緩存 - 一個圖像不緩存奇怪

ExpiresActive on 
<FilesMatch "\.(bmp|png|ico|gff|jpg|jpeg|gif|gcf)$"> 
FileETag MTime Size 
ExpiresDefault "now plus 60 minutes" 
</FilesMatch> 

問題1,因此這並緩存這些東西一個PNG文件除外。

現在我的大部分文件都是小寫字母,因爲我在Linux上,但幾個PNG文件已經通過大寫字母和大寫字母擴展。

奇怪的是,除了名爲addon2.PNG之外的所有PNG文件緩存。起初我以爲是因爲這種情況,但我已經檢查過,而且我還有3個帶有大寫擴展名的PNG文件 - Google Page Speed所說的緩存。那麼有什麼想法或者Google Page Speed就是B.S.?

和問題2,因爲我警惕由於我的主機亂用他們的上光油的問題我添加的東西在時間隱藏一點,等着看我的東西砸了。當我嘗試緩存HTML文件時,我的站點的登錄/註銷功能(用PHP編寫)不起作用。

您必須登錄並刷新或註銷並刷新。我想知道是因爲頁面HTML是通過PHP文件輸出的嗎?我所有的主頁都是PHP,而我只有幾個實際的html文件。但我認爲緩存HTML只會使用下面的代碼執行htm & html擴展。但它有點像服務器試圖緩存PHP文件輸出的HTML。我在這裏忘了嗎?

ExpiresActive on 
ExpiresDefault "now plus 60 minutes" 
ExpiresByType text/html "now plus 60 minutes" 
<FilesMatch "\.(css|bmp|png|ico|htm|gff|html|jpg|jpeg|gif|gcf)$"> 
FileETag MTime Size 
ExpiresDefault "now plus 60 minutes" 
</FilesMatch> 
+1

爲圖像提供請求和響應標頭。 – zerkms

+0

unfortunatley我沒有cmd行訪問所以使用嗅探器 GET /images/addon2.PNG HTTP/1.1 主機:ksa-codesphere.com 用戶代理:Mozilla/5.0(Windows NT 6.1; WOW64; rv:19.0)壁虎/ 20100101火狐/ 19.0 的Referer:http://www.rexswain.com/httpview.html 連接:關閉 接收部首: HTTP/1.1·200·OK(CR)(LF) 日期:·週一,·06·月·2014·01:43:40·GMT(CR)(LF) 服務器:·阿帕奇/ 2(CR)(LF) 上次修改:·太陽,·05·月·2014·03 :21:40·GMT(CR)(LF) ETag的:· 「303a685-968b-4ef30a449a0ce」(CR)(LF) 的Accept-範圍:·字節(CR)(LF) 內容長度:·38539(CR)(LF) 連接:·close(CR)(LF) 內容類型:·image/png(CR)(LF) (CR)(LF) –

+0

hmmmm我用另一個嗅探器來檢查結果和它說沒有緩存,當我直接到圖像時,而不是頁面圖像 –

回答

0

你長的解釋基本上可以歸結爲一個PNG圖像不被緩存& HTML是不爽快。這可能是因爲你說的PNG圖像有問題(addon2.PNG)只是被損壞了。但你的問題的問題是你沒有提供任何標題來顯示輸出。

如果您使用的是Linux,只需轉到終端並使用curl即可獲取標題。例如,這是我怎麼能獲得與主Google圖像上他們的網頁發送了頭:

curl -I https://www.google.com/images/srpr/logo11w.png 

而且該命令的輸出是:

HTTP/1.1 200 OK 
Content-Type: image/png 
Last-Modified: Wed, 09 Oct 2013 01:35:39 GMT 
Date: Tue, 17 Dec 2013 23:39:21 GMT 
Expires: Wed, 17 Dec 2014 23:39:21 GMT 
X-Content-Type-Options: nosniff 
Server: sffe 
Content-Length: 14022 
X-XSS-Protection: 1; mode=block 
Cache-Control: public, max-age=31536000 
Age: 1647616 
Alternate-Protocol: 443:quic 

所以你的情況只需要輸入這個命令還記得把它設置爲圖像,像這樣的現實路徑:

curl -I https://url/to/your/site/addon2.PNG 

又得罪了你們所知道的是緩存,你希望它的東西比較頭。

另外,ExpiresDefault & Cache-Control有時可以稍微相互衝突。因此,請檢查這兩個值,看看您的主機正在設置的是什麼,而您的設置是.htaccess

而且對此:

所以任何想法或者是谷歌網頁速度只是學士學位?

所有這些網頁基準測試工具有不同的用處。一般而言,對於您所面對的具體問題,他們不是B.S.但完全沒用。這就像你在一輛汽油漏油車裏&汽車中的一些自動系統正在告訴你改變你的機油。你不需要「換油」,你需要找到泄漏&插上它,讓油留在!

因此,在你的情況下,最好的選擇是使用像curl這樣的Unix工具來檢查頭部輸出是否爲&調整/調整,直到你做對了。

編輯另外,請看看這個漂亮的深入和有用的caching guide from Google

+0

是啊我不打算做他們說的所有事情,並且真正的一個PNG文件對於我來說不是一個大問題,一個擁有數千個IMG的網站卻是一件奇怪的事情,不會離開我的腦袋大聲笑。 html的事情,但是我真的很想找出最 –

+0

哦想補充的是,一些HTML文件我也有,想緩存不使用我用 –

+0

將爲鏈接 –