没有在Azure App Service中为静态文件注册路由

时间:2019-06-19 06:29:09

标签: reactjs azure azure-devops azure-web-sites cypress

我有一个运行ReactJS应用程序的Azure应用服务。在发布管道中,我提取了一个包含赛普拉斯测试结果的zip文件。

导航到Kudu控制台时,可以在PS D:\home\site\wwwroot\e2e\mochawesome-report>文件夹中找到正确的文件夹和文件。但是当我导航到 视频:

https://exampleUrl/e2e/mochawesome-report/video/onboarding.spec.js.mp4

  

您要查找的资源已被删除,名称已更改或暂时不可用。

但是当我导航至:https://exampleUrl.azurewebsites.net/e2e/mochawesome-report/screenshot/customer-card.spec.js/Customer card action tab -- can click on the account tab (failed).png

我可以查看图像。

查看静态文件是否需要一些配置?

## EDIT ##

添加了我的web.config:

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="React Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

我很确定我在网上找到了这个地方。

我注意到了其他事情。我现在可以打开.html和.css,.js和.png文件,但没有.json,.woff,.woff2和mp4。

1 个答案:

答案 0 :(得分:1)

您需要定义Web应用程序的文件扩展名。

将这些行添加到web.config下的</rewrite>中,然后重新启动Web App:

    <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="video/mp4" />                   
    </staticContent>

要添加其他扩展名(如json):

<mimeMap fileExtension=".json" mimeType="text/plain" /

结果将是:

<staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />                   
    <mimeMap fileExtension=".json" mimeType="text/plain" /        
</staticContent>