2012-12-11 33 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不会被发现... –