2012-12-11 40 views
1

我的網站運行在node.js上,我使用Nginx來從無Cookie域中服務我的靜態文件。對於這些文件,我已經設置Nginx來設置expires頭文件。但它似乎並沒有爲我的圖標工作。使用Nginx作爲node.js的代理添加過期標題到favicon.ico

我的Nginx 默認配置文件:

# static content 
server { 
     server_name static.domain.com; 
     root /my/website/lives/here/public; 

     location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { 
      expires 365d; 
     } 
} 

ICO公司在的mime.types一個minetype:

image/x-icon ico; 

服務響應頭表示沒有緩存控制或到期日:

Accept-Ranges:bytes 
Connection:keep-alive 
Content-Length:32988 
Content-Type:image/x-icon 
Date:Tue, 11 Dec 2012 23:20:19 GMT 
Last-Modified:Sat, 08 Dec 2012 11:51:28 GMT 
Server:nginx/1.1.19 

而這些都是具有高速緩存控制和隨機圖像的響應,截止日期爲你所期望的:

Cache-Control:max-age=31536000 
Connection:keep-alive 
Date:Tue, 11 Dec 2012 23:24:00 GMT 
Expires:Wed, 11 Dec 2013 23:24:00 GMT 
Last-Modified:Tue, 11 Dec 2012 23:04:24 GMT 
Server:nginx/1.1.19 

我檢查,如果圖標正在從靜態域服務(static.domain.com/favicon .ico)而不是網站文檔根(domain.com/favicon.ico)。有誰知道什麼是錯的,或者我該如何調試?

回答

0

顯然還有另一行匹配favicon,隱藏在一個包含文件中,爲簡單起見,我在這個問題中省略了它。

location = /favicon.ico { 
    log_not_found off; 
    access_log off; 
} 

刪除此(因爲目前在這個網站圖標),解決了我的問題:-)

+0

這有什麼,如果你有在網站上目前的favicon.ico做。這隻會禁用access_log和error_log,如果favicon不會被發現... –