出于某种原因,我的 IIS 不会返回任何字体文件。它们都以 404 的形式返回。我已验证 URL 正确且 MIME 类型正确。字体文件当前位于使用 MVC4 的 .NET 4.5 项目中。当我将文件移动到项目之外,进入服务器的根目录时,它可以很好地提供文件。我已经验证项目的 web.config 中没有对文件扩展名的处理方式进行任何覆盖。
到目前为止,.TTF、.EOT、.SVG 和 .WOFF 文件都在发生这种情况。同一目录中的其他静态文件可以正常返回。IIS8.5 中是否有一些设置阻止返回字体文件?
我附上了一个由失败的请求跟踪生成的日志文件。
这个问题似乎在项目的工作过程中得到了解决。Andrew Morton 为遇到类似问题的其他人提供了一些出色的故障排除步骤。我将提供快速列表:
验证服务器正在使用正确的 MIME 类型。使用 IIS 管理器 > 服务器 > 项目 > MIME 类型。以下是对我有用的 MIME 类型列表:
如果这不起作用,请验证 Web 服务器对项目文件夹和存储文件的文件夹具有权限。遵循教程将有很大帮助。
使用ProcessMonitor等工具进一步调试将有助于缩小更顽固的服务器问题。
希望这可以帮助某人。
我通过检查 ISS 错误日志中的状态代码来诊断我的解决方案。
win32 状态表示
https://docs.microsoft.com/en-gb/windows/win32/debug/system-error-codes--1300-1699-
原来有一篇关于这个故障的MS文章。
https://blogs.msdn.microsoft.com/asgoyal/2012/08/25/one-thing-you-must-do-when-getting-http-500-0-1346-error/
对我来说,问题是该策略中缺少“IIS_IUSRS”组。
尝试这个:
震颤谵妄,没什么大不了的
如果是,这是您的应用程序服务器中的 mime 类型的配置问题
如果不是,您的字体未解析,因为预期的路径不正确 - 查看 .html 文件的 404 错误,它应该通过显示相对于 Web 根目录的 unc 路径来显示应用程序服务器从何处查找您的字体