.OTF字体未部署到Azure

时间:2012-11-15 03:20:43

标签: asp.net-mvc azure

我在/ images文件夹中有一个带.otf字体的MVC 4应用程序。它可以在我的桌面上运行,但是当我部署到azure时,我在尝试访问/images/myfont.otf时获得了404.

字体已将Build Action属性设置为'Content'

如何强制Azure选择它?

5 个答案:

答案 0 :(得分:33)

您可能需要配置IIS以正确提供此文件类型。您可以将以下内容添加到<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

答案 1 :(得分:6)

将以下内容放入web.config配置中的system.webServer

<system.webServer>    
   <staticContent>
       <remove fileExtension=".otf" />
       <mimeMap fileExtension=".otf" mimeType="font/otf" />
    </staticContent>
</system.webServer>

答案 2 :(得分:2)

HTTP错误404表示在服务器上找不到内容。这意味着当您将应用程序部署到Windows Azure时,内容不在包中。

如上所述,您确实将.OTF设置为内容,这意味着您要求编译器将其视为静态文件而不构建它,但是特定文件不会被复制到最终输出文件夹中最终CSPKG的一部分。您需要将“复制到输出目录”设置为“始终复制”,以便它可以成为CSPKG的一部分并部署到Azure云服务。

正确设置文件属性并构建应用程序后,您可以通过解压缩手动访问输出文件夹以验证文件是否存在以及CSPKG。

enter image description here

答案 3 :(得分:0)

我遇到的问题是文件未包含在项目中。它们位于正确的文件路径((project)/Content/fonts/*)中,但不被视为项目的一部分(即*.csproj文件的引用)。解决方案是右键单击fonts文件夹并选择Include in Project选项。

答案 4 :(得分:-1)

我最好的选择是你的css中有你的字体文件的相对路径。

你是否获得了403 Forbidden?这可能表明您的文件路径已关闭。

尝试将路径从../filename.otf更改为/Styles/filename.otf(或任何路径)