自定义Web字体的客户端缓存建议

时间:2014-11-07 19:37:15

标签: iis-7.5 browser-cache cloudflare

让IIS设置woff文件标头的最佳方法是什么,以便可以从客户端浏览器缓存中提供它们。

我正在开发一个在IIS7.5中托管的MVC .NET站点,通过启用静态缓存的cloudflare提供服务。该网站使用自定义woff网络字体。当对使用这些字体的页面发出请求时,IIS正在使用下面显示的标题为它们提供服务。后续请求看起来都一样。对我来说,它们似乎没有被客户端浏览器缓存。我希望服务器响应304(未修改),然后浏览器应该从其缓存服务woff。

请求标题

GET /blah/Content/fonts/AzoSans-Thin-webfont.woff HTTP/1.1
Host: blah.co.uk
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Accept: */*
DNT: 1
Referer: http://blah.co.uk/bundles/Content/stylesheets/main?v=f9NXr53WMUdV9DfYJMkEU_5QZZi0g8eB1lB5lqxgdXc1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: __cfduid=d96b367152ae58725c15e5946cf1d67f41415385741070; ASP.NET_SessionId=3tcc3e1nd0z005tlknrbph5h; redesign#lang=en

响应标题

HTTP/1.1 200 OK
Date: Fri, 07 Nov 2014 19:27:57 GMT
Content-Type: application/font-woff
Content-Length: 27728
Connection: keep-alive
Last-Modified: Thu, 06 Mar 2014 10:40:46 GMT
ETag: "0cbfc872839cf1:0"
X-Powered-By: ASP.NET
CF-Cache-Status: HIT
Vary: Accept-Encoding
Expires: Fri, 07 Nov 2014 23:27:57 GMT
Cache-Control: public, max-age=14400
Accept-Ranges: bytes
Server: cloudflare-nginx
CF-RAY: 185bee60092d0a90-LHR

1 个答案:

答案 0 :(得分:0)

这里的问题似乎是cloudflare正在改变标题。如果我绕过cloudflare我得到 缓存控制:最大年龄= 0 服务器以304响应,浏览器使用缓存中的内容。