繁体   English   中英

mimeMap在Azure网站中不起作用

[英]mimeMap not working in Azure Website

我有一个由几个虚拟应用程序组成的Azure网站。 根应用程序具有针对SPA(角度)的URL重写规则:

<rule name="AngularJS" stopProcessing="true">
  <match url=".*"/>
  <conditions  logicalGrouping="MatchAll">
    <!--Is not file-->
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
    <!--Is not directory-->
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
    <!--Is not /api-->
    <add input="{REQUEST_URI}" pattern="^/(api)" negate="true"/>
    <!--Is not *.extension-->
    <add input="{URL}" pattern="^.*\.(ashx|axd|css|gif|png|mov|MOV|avi|ttf|jpg|jpeg|js|flv|f4v|woff|woff2|json)$" negate="true"/>
  </conditions>
  <action type="Rewrite" url="/"/>
</rule>

根应用程序还具有一个非常小的OWIN / Katana中间件应用程序,该应用程序运行静态文件中间件以根据条件返回单个页面。 RAMMFAR已关闭,因此静态文件中间件仅用于返回主页。

我的问题是我有.woff,.woff2和.json文件,它们拒绝在Azure中加载,但在本地IIS中可以很好地加载。 我有一个web.config具有以下内容:

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

    <remove fileExtension=".woff2"/>
    <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2"/>

    <remove fileExtension=".json"/>
    <mimeMap fileExtension=".json" mimeType="application/json"/>
  </staticContent>
</system.webServer>

这在Azure中不起作用。 它在本地运行良好,但在Azure中却不行。 我什至将web.configs放在文件所在的每个文件夹中,以确保规则不会被覆盖。 我认为这可能与在Azure网站中使用虚拟应用程序有关,但是我无法更改网站结构。 如何使这些.woff,.woff2和静态json文件正确投放? 编辑:刚刚检查了IIS日志,发现对文件之一的请求跟踪失败。 我收到“ SECURITY_DENIED_BY_MIMEMAP”错误,这意味着与web.config没有被IIS处理有关。

TLDR:即使我拥有适当的web.config(据我所知),woff,json和woff2文件仍返回404,即使它们存在于指定位置的服务器上。

当前只有一种方法可以执行此操作,我已与Azure团队确认。

使用以下内容将web.config文件添加到应用程序wwwroot\\web.config的根目录中

  <?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="application/mp4" />
        <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
      </staticContent>
    </system.webServer>
  </configuration>

如果使用的是OWIN / Katana,则需要处理静态文件-添加Nuget Microsoft.Owin.StaticFiles Install-Package Microsoft.Owin.StaticFiles

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM