【问题标题】:Add MIME mapping in web.config for IIS Express在 web.config 中为 IIS Express 添加 MIME 映射
【发布时间】:2012-02-19 18:32:12
【问题描述】:

我需要为 .woff 文件扩展名添加一个新的 MIME 映射到 IIS Express。

如果我将以下 sn-p 添加到 IIS Express 的“applicationhost.config”中,它可以正常工作:

<staticContent lockAttributes="isDocFooterFileName">
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
    ...

但我实际上想将它添加到我的“web.config”中,这样​​并不是每个开发人员都需要在本地更改他们的“applicationhost.config”。

所以我再次从“applicationhost.config”文件中删除它,并将以下sn-p添加到项目的“web.config”中:

<system.webServer>
  ...
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  </staticContent>
</system.webServer>

不幸的是,它似乎无法以这种方式工作,因为当我尝试访问 .woff 文件时,我最终会遇到 HTTP 404.3 错误。

我做错了什么?

【问题讨论】:

    标签: asp.net configuration mime-types iis-express


    【解决方案1】:
    <system.webServer>
         <staticContent>
          <remove fileExtension=".woff"/>
          <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
          <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
        </staticContent>
      </system.webServer>
    

    【讨论】:

      【解决方案2】:

      我在让 ASP.NET 5.0/MVC 6 应用程序提供静态二进制文件类型或浏览虚拟目录时遇到问题。看起来这现在是在启动时在 Configure() 中完成的。请参阅http://docs.asp.net/en/latest/fundamentals/static-files.html 了解快速入门。

      【讨论】:

        【解决方案3】:

        要解决此问题,请在左侧面板中选择 IIS 根节点的同时双击“MIME 类型”配置选项,然后单击右侧“操作”面板中的“添加...”链接。这将弹出以下对话框。添加.woff文件扩展名并指定“application/x-font-woff”为对应的MIME类型:

        使用 application/x-font-woff2 对 woff2 进行相同操作

        【讨论】:

        • 这适用于 IIS,但问题与 IIS Express 有关。有没有办法访问 IIS Express Web 服务器的此设置?
        【解决方案4】:

        将它放在“web.config”中可以正常工作。问题是我弄错了 MIME 类型。而不是 font/x-wofffont/x-font-woff 必须是 application/font-woff:

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

        另请参阅有关 MIME 类型的答案:https://stackoverflow.com/a/5142316/135441

        2013 年 4 月 10 日更新

        规范现在是一个建议,MIME 类型正式为:application/font-woff

        【讨论】:

        • 根据链接,更新后的 mime 类型现在应该是:application/font-woff(而不是弃用的 application/x-font-woff)。
        • @longda 感谢您的提示!我更新了答案以反映这一点。
        • 这种在 web.config 中定义自定义 MIME 类型的方法是否仅适用于 IIS Express?我已经在部署到 IIS 6 的 web.config 中进行了尝试,但它不起作用(抛出 404)。如果我通过 IIS 管理器控制台添加 MIME 类型,它确实有效。
        • @WalterStabosz 以上适用于 IIS 和 IIS Express 7+。如果您使用的是 IIS 6,则需要在服务器上配置 mime-types,请参阅configuring mime-types on IIS 6
        【解决方案5】:

        我没有使用 IIS Express,而是针对我的本地完整 IIS 7 进行开发。

        所以如果有其他人来这里尝试这样做,我必须为 woff 添加 mime 类型 通过 IIS 管理器

        Mime Types >> 点击右边的添加链接,然后输入 扩展名:.woff MIME 类型:application/font-woff

        【讨论】:

        • 谢谢,这让我加快了让项目再次运行的速度。我的 IIS7.5 一切正常,但我得到了 Win8 和 IIS8,并且站点 web.config 中的映射与 IIS 配置重复,导致请求的任何静态资源出错。我删除了重复项,现在一切正常。
        【解决方案6】:

        如果有人遇到类似的错误 错误:无法添加具有唯一键属性的“mimeMap”类型的重复集合条目 和/或其他脚本在执行此修复时停止工作,首先将其删除可能会有所帮助:

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

        至少解决了我的问题

        【讨论】:

        • 谢谢,这增加了部署时的安全性:)
        • 将此添加到我喜欢的 IIS 功能列表中。
        • 如果服务器已经包含 mime 类型,在 web.config 中指定它可能会导致重复异常。
        【解决方案7】:

        感谢这篇文章。我在我的 asp.net mvc 项目中使用 mustache 模板得到了这个工作 我使用了以下内容,它对我有用。

        <system.webServer>   
          <staticContent>
           <mimeMap fileExtension=".mustache" mimeType="text/html"/>
          </staticContent>
        </system.WebServer>
        

        【讨论】:

          【解决方案8】:

          我知道这是一个老问题,但是...

          我只是注意到我的 IISExpress 实例没有提供 woff 文件,所以我没有搜索(找到这个)然后找到了:

          http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

          我想我的安装支持 SVG,因为我没有遇到过这个问题。但是这些指令对于 woff 来说是可以修改的:

          • 使用管理员权限打开控制台应用程序。
          • 导航到 IIS Express 目录。它位于 Program Files 或 Program Files (x86) 下
          • 运行命令:

            appcmd set config /section:staticContent /+[fileExtension='woff',mimeType='application/x-woff']

          解决了我的问题,我不必弄乱一些糟糕的配置(就像我必须添加对 PUTDELETE 动词的支持一样)。耶!

          【讨论】:

            猜你喜欢
            • 2010-09-21
            • 2011-04-25
            • 1970-01-01
            • 1970-01-01
            • 2014-01-05
            • 2010-12-23
            • 1970-01-01
            • 2013-10-14
            • 2014-07-19
            相关资源
            最近更新 更多