122

我的程序中有一个从 Font Squirrel 生成的字体我只是无法让它在 IIS 中工作,它在 localhost 中工作。我在我的 MIME 类型中添加了application/font-woff 文章,但它仍然不想工作。

Context
--Fonts
----font location
--css files

CSS

@font-face {
    font-family: 'wallStreetFont';
    src: url('Fonts/subway-webfont.eot');
    src: url('Fonts/subway-webfont.eot?#iefix') format('embedded-opentype'),
         url('Fonts/subway-webfont.woff2') format('woff2'),
         url('Fonts/subway-webfont.woff') format('woff'),
         url('Fonts/subway-webfont.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

编辑当前 MIME

我正在使用默认的 IIS 8 MIME字体/x-woff

4

5 回答 5

264

很高兴看到 Font Squirrel 字体中包含 WOFF2!虽然 IIS 8 不需要添加 mime 类型,WOFF但它需要一个用于WOFF2. W3C建议

application/font-woff2

有关更多信息,WOFF2请参见此处

要在 IIS 中添加 mime 类型,请修改Web.Config如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- ... -->
  <system.webServer>
    <!-- ... -->
    <staticContent>
      <!-- ... -->
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>
    <!-- ... -->
  </system.webServer>
于 2014-09-11T21:10:17.617 回答
81

为了使 woff 和 woff2 字体在 IIS 中正常工作,您应该将以下 MIME 类型添加到 Web.Config 文件中。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>  
  <system.webServer>    
    <staticContent>
        <remove fileExtension=".woff" />
        <remove fileExtension=".woff2" />
        <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

如果您在 Google Chrome 上仍然遇到 404 错误,您应该在重新加载页面之前清除浏览器缓存。

于 2015-04-09T05:45:07.417 回答
27

请注意,也可以在 IIS 管理器中配置 MIME 类型。只需选择网站,然后双击主窗格中 IIS 下的 MIME 类型图标。

在此处输入图像描述

然后,您应该会看到所有现有 MIME 类型的列表,并且能够使用右侧窗格中的添加...链接添加新的 MIME 类型。

于 2015-05-15T09:09:53.700 回答
0

我正在执行以下操作:

  1. MVC5 中的捆绑
  2. 构建引导程序
  3. 在引导程序中使用 @font-face

我在服务器上部署了一个 min.css 文件,该非 min 文件包含在包中。一旦我删除了 .min.css 文件。这一切都奏效了。

于 2021-02-12T05:44:19.240 回答
0

我今天在部署 Web 解决方案 Metro4 UI 图标并从 CDN 切换到 Compiled 选项时遇到了这个问题。

我的项目是使用 WebSharper 平台开发的,但解决方案无论如何都独立于这些实现细节。

长话短说,我发现我必须.ttf在.securitysystem.webServerWeb.config

<security>
    <requestFiltering>
        <fileExtensions>
            <add fileExtension=".ttf" allowed="true" />
        </fileExtensions>
    </requestFiltering>
</security>

在 IIS 的 GUI 设置下也可以使用相同的配置选项

IIS 图形用户界面

于 2019-09-05T14:33:07.837 回答