1

我一直在做 asp.net web 开发,但从未实现过一个完整的 asp.net 网站并托管它。我一直在研究一个 asp.net 网站并将其托管在 Windows 服务器上。

我有几个在网站中使用的自定义 Web 字体(付费字体)。我已经在我的项目文件夹中包含了 Web 字体和样式的文件,并在我的样式表中正确引用了它们。

我使用@font-face 来引用样式表中的字体:

@font-face {
font-family: 'fontname';
src: url('/fonts/webfonts/font.eot');
src: url('/fonts/webfonts/font.eot?#iefix') format('embedded-opentype'),
    url('/fonts/webfonts/font.woff') format('woff'),
    url('/fonts/webfonts/font.ttf') format('truetype');
font-weight: normal;
font-style: normal;
} 

但是,网络字体没有被加载到网站中。

经过一番研究,我发现我们需要在 web.config 类型中添加 mime 类型,以便 windows 服务器识别该字体格式。然后,我还在 web.config 文件中引用了 mime 类型,如下所示:

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

但是,它也不起作用。谁能告诉我,我们如何加载这些字体。

4

1 回答 1

2

所以你还需要为.eotand添加一个 MIME 映射.ttf

我们Web.config文件中的类似块读取:

<staticContent>
    <remove fileExtension=".svg"/>
    <remove fileExtension=".ttf"/>
    <remove fileExtension=".otf"/>
    <remove fileExtension=".woff"/>
    <remove fileExtension=".eot"/>
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
    <mimeMap fileExtension=".ttf" mimeType="application/x-font-truetype"/>
    <mimeMap fileExtension=".otf" mimeType="application/x-font-opentype"/>
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
    <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject"/>
</staticContent>

请注意,我们首先删除所有映射,以防它们在某些时候被上游配置。

于 2013-05-14T14:58:34.890 回答