【问题标题】:CSS-defined font not found [duplicate]未找到 CSS 定义的字体 [重复]
【发布时间】:2012-05-08 19:48:48
【问题描述】:

可能重复:
@font-face not working on a client site?

我的 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"

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

【问题讨论】:

  • 您是否尝试过访问此网址?也许没有文件?
  • 正如我所说,我在指定的文件夹结构中有这些文件;当我在 Windows 资源管理器中打开文件夹时,它们肯定在那里。如果我单击该链接,我会收到以下响应: HTTP 错误 404.3 - 未找到 由于扩展配置,无法提供您请求的页面。如果页面是脚本,则添加处理程序。如果应该下载文件,请添加 MIME 映射。
  • 所以文件在文件夹中,但服务器不提供服务?那是服务器问题,而不是 css,对吗?
  • 你可以看到这个关于字体渲染不正确的帖子。 stackoverflow.com/questions/32692151/…

标签: css webfonts


【解决方案1】:

找到解决方案here...

问题在于 IIS 不知道如何提供这些新文件,除非我们告诉它如何提供服务。这可以通过添加以下 sn-p 在 web.config 的 <system.webServer> 部分中的 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 很好)。您要么需要从本节中删除这些映射,要么包括额外的 &lt;remove&gt; 行,例如 .eot 的行。

【讨论】:

  • 出于某种原因,将这些添加到我的 web.config 以用于托管在 Rackspace 云中的站点会破坏我的所有 CSS,就好像不再识别 CSS 文件一样。任何线索为什么会发生这种情况?
  • 这太让人高兴了。出于某种原因,我试图为 OTF 文件添加文件处理程序规则。
  • 感谢您的有用帮助!
  • 基于这个答案 (stackoverflow.com/a/16708374) woff 文件的 MIME 类型实际上是“application/font-woff”。当我使用“font/x-woff”时,我收到了来自 Chrome 的投诉,称服务器正在传输具有错误 MIME 类型的字体。我改成“application/font-woff”,投诉就消失了。
【解决方案2】:

web.config中注册MIME类型如下:

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

这样就解决了问题。

【讨论】:

  • 如果可以的话,请告诉我通过ftp更新web.config的方法。我是 IIS 服务器的新手。或者请告诉我“我能做到吗?或者需要询问我的网络托管支持吗?”
【解决方案3】:

公共文件夹(这里是css)--->字体文件夹(这里是字体-NuvoWeb-Medi.eot)

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

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

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 2014-05-17
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2011-11-06
    • 2012-12-21
    • 2012-07-27
    • 1970-01-01
    相关资源
    最近更新 更多