我有一个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。
答案 0 :(得分:1)
目前只有一种方法可以做到这一点,我已与Azure团队确认。
将web.config文件添加到应用程序/** Detects keypoints and computes the descriptors */
CV_WRAP virtual void detectAndCompute( InputArray image, InputArray mask,
CV_OUT std::vector<KeyPoint>& keypoints,
OutputArray descriptors, bool useProvidedKeypoints=false );
的根目录中,其中包含以下内容
wwwroot\web.config
答案 1 :(得分:0)
如果您使用的是OWIN / Katana,则需要处理静态文件 - 添加Nuget Microsoft.Owin.StaticFiles Install-Package Microsoft.Owin.StaticFiles
。