27

可能重复:
@font-face 不能在客户端站点上工作?

我的 ASP.Net MVC Web 应用程序的此文件夹结构中有以下字体文件:

-[根]

|-- 公开

||--字体

|||--NuvoWeb-Medi.eot

|||--NuvoWeb-Medi.woff

在我的 CSS 文件中,我有以下字体声明:

@font-face 
{
    font-family: NuvoWeb;
    src: url(/Public/fonts/NuvoWeb-Medi.eot);
}
@font-face 
{
    font-family: NuvoWeb;
    src: url(/Public/fonts/NuvoWeb-Medi.woff) format('woff');
}

但是,当我运行该应用程序时,Firebug 返回以下错误:

“网络错误:404 未找到 - http://localhost:60194/Public/fonts/NuvoWeb-Medi.woff

请告知我缺少什么以使其正常工作。

4

3 回答 3

68

在这里找到解决方案...

问题是 IIS 不知道如何提供这些新文件,除非我们告诉它如何提供服务。<system.webServer>这可以通过添加以下代码段在 web.config 部分的 web.config 中轻松完成:

<staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
    <mimeMap fileExtension=".m4v" mimeType="video/m4v" />
    <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
    <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
    <mimeMap fileExtension=".webm" mimeType="video/webm" />
    <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
    <mimeMap fileExtension=".spx" mimeType="audio/ogg" />
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
    <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
    <remove fileExtension=".eot" />
    <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
    <mimeMap fileExtension=".otf" mimeType="font/otf" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>

请注意,其中一些扩展可能已经在 IIS 中处理(对我来说,.svg 很好)。您要么需要从本节中删除这些映射,要么包括额外<remove>的行,例如 .eot 的行。

于 2012-04-28T10:24:19.563 回答
7

注册 MIME 类型web.config如下:

<system.webServer>
    <staticContent>
      <remove fileExtension=".eot" />
      <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
    </staticContent>
</system.webServer>

这解决了问题。

于 2012-08-06T08:00:45.063 回答
2

公共文件夹(此处为 css)---> 字体文件夹(此处为字体 -NuvoWeb-Medi.eot)

@font-face 
{
    font-family: 'NuvoWeb';
    src: url(fonts/NuvoWeb-Medi.eot);
}

你错过了引用符号 font-family: 'NuvoWeb';

于 2012-04-28T07:58:16.180 回答