在IIS上部署后,Angular App Url总是在刷新时说404

时间:2018-12-04 11:43:39

标签: angular angular-routing

我在Windows服务器的IIS上部署了使用angular 6开发的应用程序。 现在,我遇到一个问题:如果刷新页面,则在浏览应用程序时会显示 404-找不到文件或目录。 我查看了与此问题相关的帖子,并尝试应用修复程序。但没有运气。 我不想在网址中使用#。我只想使用arguments

之类的网址

如果我正在使用#,则可以,但是我不想使用#。

我也尝试添加一个web.config,但是没有舔。任何人都可以在这里帮忙解决此问题的方法,以便在刷新时可以打开要重新加载的同一页面。

 <?xml version="1.0" encoding="utf-8"?>
<configuration>

<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>

</configuration>

1 个答案:

答案 0 :(得分:3)

点击此链接可解决此问题 Angular 2 Hosted on IIS: HTTP Error 404 还是

步骤1:安装IIS URL Rewrite模块

步骤2:将重写规则添加到web.config

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="AngularJS 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="/" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>