404上的静态内容(svg,woff,ttf)在Azure上

时间:2013-09-19 14:11:39

标签: asp.net asp.net-mvc azure web-config

我正在尝试将bootstrap glyphicons-halflings-regular.svg添加到我的网站。本地一切正常,但在Azue我有404错误:

  

您要查找的资源已被删除,名称已有   已更改,或暂时无法使用。

或当我将以下staticContent部分添加到我的web.config

<staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
    <remove fileExtension=".ttf" />
    <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
    <remove fileExtension=".svg" />
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>

我收到了这个错误:

  

路径控制器   找不到'/Content/fonts/glyphicons-halflings-regular.woff'或   没有实现IController。

我应该如何正确配置我的ASP.NET站点以避免上述错误?

5 个答案:

答案 0 :(得分:71)

我在.woff文件中遇到了同样的问题。将该扩展名添加到web.config的解决方案可以正常工作:

<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension="woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

(参见oryginal solution:http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites

答案 1 :(得分:12)

当我将建议的行放入web.config时,它不起作用。相反,我将以下几行放入Web.config(注意大写字母)

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension="woff" mimeType="application/font-woff" />
            <mimeMap fileExtension="woff2" mimeType="application/font-woff" /> 
         </staticContent>
    </system.webServer>

答案 2 :(得分:5)

我没有在解决方案中包含字体文件。这导致发布网站不包含此文件。

答案 3 :(得分:3)

如果您在Azure上使用持续部署,请验证您需要的所有文件的“构建操作”是“内容”而非“无”。

答案 4 :(得分:0)

您是否修复了css文件中引用字体文件的路径? Bootstrap假定css文件位于css目录中,而fonts字体位于与css-directory相同级别的fonts-directory中。

在Azure中运行时,该站点可能正在发布模式下运行。这意味着你的css和javascript被缩小并捆绑。这有时会破坏您的设置。

在我的项目中包含bootstrap时,我已完成以下设置:

将引导文件解压缩到/ Content目录。

将以下行添加到App_Start / BundleConfig.cs

bundles.Add(new StyleBundle("~/Content/bootstrap/css/bundle")
.Include("~/Content/bootstrap/css/bootstrap.css"));
bundles.Add(new ScriptBundle("~/Content/bootstrap/js/bundle")
.Include("~/Content/bootstrap/js/bootstrap.js"));

将以下行添加到View / Shared / _Layout.cshtml

@Styles.Render("~/Content/bootstrap/css/bundle") 
@Scripts.Render("~/Content/bootstrap/js/bundle") 

请注意,必须在Bootstrap js-bundle之前包含jQuery。

http://hj-dev.blogspot.no/2013/02/add-twitter-bootstrap-to-mvc4.html