angular部署到iis出现404解决方案

解决方案:

  1. 安装 iis URL Rewrite 模块,并在 src 目录下增加web.config,配置urlrewrite如下:
<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="/" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>
  1. 配置 web.config 自动打包

修改 angular-cli.json文件(angular2-5)

  "apps": [
        {
           "root": “src”,
           "ourDir": “dist”,
           "assets": [
              “assets”,
              “favicon.ico”,
              “web.config”
          ],

修改 angular.json 文件(angular6)

        “build”: {
           "options”: {
             . . . 
             "assets": [
                “src/assets”,
                “src/favicon.ico”,
                “src/web.config”
             ],

Reference