带有Angular的.NET Core:如何配置IIS以HTML5模式进行URL重写?

时间:2018-09-13 09:32:15

标签: angular .net-core

我用.Net core 2.1构建了一个angular 6应用程序,并部署到IIS Web服务器上的azure服务器。刷新时,路由在本地主机上工作正常,但在azure服务器上不工作。我检查了角度deployment guideline,并在web.config文件中添加了以下代码

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Angular Routes" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="/index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

现在,我遇到了新问题。现在,所有文件都包含index.html内容,而不是它们各自的文件内容。 enter image description here enter image description here

我在这里想念什么?我是否需要对kestrel服务器进行任何更改

1 个答案:

答案 0 :(得分:2)

角度指南的本部分不适用于ASP.NET Core托管的Angular应用程序。仅对于非.NET或经典ASP.NET网站,才需要重写模块定义。

如果您基于针对角度或SPA的ASP.NET Core的模板启动应用程序,则您已经设置了重写/ SPA后备路由。

我建议从使用dotnet new angular -o MyAngularApp创建的应用程序开始,我们使用VS'的角度模板(都使用相同的模板包)。