我在 /images 文件夹中有一个带有 .otf 字体的 MVC 4 应用程序。它可以在我的桌面上运行,但是当我部署到天蓝色时,我在尝试访问 /images/myfont.otf 时得到 404
该字体已将 Build Action 属性设置为“Content”
我怎样才能强制 Azure 接受这个?
我在 /images 文件夹中有一个带有 .otf 字体的 MVC 4 应用程序。它可以在我的桌面上运行,但是当我部署到天蓝色时,我在尝试访问 /images/myfont.otf 时得到 404
该字体已将 Build Action 属性设置为“Content”
我怎样才能强制 Azure 接受这个?
您可能需要配置 IIS 以正确处理此文件类型。您可以通过将以下内容添加到 in 中的<system.webServer>
元素来执行此操作Web.config
:
<staticContent>
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
更多信息 http://www.big.info/2013/06/how-to-use-otf-opentype-format-fonts-on.html
将以下内容放入web.config
配置中system.webServer
:
<system.webServer>
<staticContent>
<remove fileExtension=".otf" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
</system.webServer>
HTTP 错误 404 表示在服务器上找不到内容。这确实意味着当您将应用程序部署到 Windows Azure 时,内容不在包中。
正如您在上面建议的那样,您确实将 .OTF 设置为内容,这意味着您要求编译器将其视为静态文件并且不构建它,但是特定文件不会被复制到最终输出文件夹中作为最终文件的一部分CSPKG。您需要将“复制到输出目录”设置为“始终复制”,以便它可以成为 CSPKG 的一部分并部署到 Azure 云服务。
正确设置文件属性并构建应用程序后,您可以手动访问输出文件夹以验证文件是否存在以及您的 CSPKG 是否存在,只需解压缩即可。
对我来说问题是这些文件没有包含在项目中。它们位于正确的文件路径 ( (project)/Content/fonts/*
) 中,但不被视为项目的一部分(即*.csproj
文件引用)。解决方案是右键单击字体文件夹并选择该Include in Project
选项。
我最好的选择是你的 css 中有字体文件的相对路径。
你得到了 403 Forbidden 吗?这可能表明您的文件路径已关闭。
尝试将路径从 ../filename.otf 更改为 /Styles/filename.otf (或任何路径)