Woff文件mime类型和Azure

时间:2014-07-25 23:58:17

标签: twitter-bootstrap asp.net-mvc-4 caching azure woff

我正在尝试将ASP.Net MVC4 TwitterBootstrap应用程序部署到我在Azure的新托管中。

全部工作100%,除了文件'\ Fonts \ glyphicons-halflings-regular.woff'在使用Chrome时出现404错误(使用F12时的网络选项卡)。

我检查了我的解决方案,文件在那里:

enter image description here

我google了,发现这是一个mime类型问题和Azure。我找到了一个链接,说明修复是将其添加到web.config。

<staticContent>
  <mimeMap fileExtension="woff" mimeType="application/font-woff" />
</staticContent>

我做到了,404不再显示了。但是,我的页面需要额外加载1.56ms,因为它似乎每次加载页面时都会下载该woff文件 - 其中所有其他静态内容似乎都在每次加载时缓存在服务器上。

enter image description here

那是加载主页 - 并且是唯一加载的文件。其余的似乎缓存?

加载另一个加载了其他项目的页面,表明这是缓存似乎不感兴趣的文件:

enter image description here

有没有办法让这个文件缓存?我想可能需要将mime类型添加到他们的服务器某个地方?我对缓存和哑剧以及Azure都不熟悉。希望有一个解决方案,因为这个文件几乎是Azure上所有页面上的页面加载时间的两倍。我的另一个廉价主机没有这个问题。

2 个答案:

答案 0 :(得分:8)

也许试试这个......注意事项

1)删除行

2)x-font-woff vs font-woff

<staticContent> <remove fileExtension=".woff" /> <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" /> </staticContent>

发现于 http://ideasof.andersaberg.com/development/quick-fix-iis-woff-font-file-404-not-found-in-aspnet-mvc/

答案 1 :(得分:2)

扩展Craig的答案,了解包含WOFF2文件的最新引导程序。您也可以添加

<system.webServer>
    <staticContent>

        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff2" mimeType="font/woff2" />

    </staticContent>
</system.webServer>

(有关WOFF2文件的当前mime类型的讨论,请参阅Proper MIME type for .woff2 fonts