Angular url IIS 问题

Angular url problems on IIS

我将我的 dot net core 3.1 api 和 angular 9 应用程序部署到 IIS 中。 Api 效果很好。当我点击 url 进行登录时,它运行良好并带我进入了我的仪表板。 http://192.168.15.12:8020/ePortal/home.

之后当我点击我的其他组件时说我想去颜色。当我点击颜色时,urls 是 http://192.168.15.12:8020/home/color-details instead of http://192.168.15.12:8020/ePortal/home/color-details,这就是它显示 404(未找到)错误的原因。

我已经使用 ng build --prod --base-href /ePortal/ 构建了作品,还添加了一个 web.config 来重写 url

<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="/ePortal/" />
        <!--<action type="Rewrite" url="/" /> /ePortal/-->
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>

我无法确定问题所在。请帮忙

这是一个 angular 路由问题。您正在使用相对路径,但您需要为此使用绝对路径。尝试在您的路由器链接之前添加“/”。

示例:使用 routerLink = "/color" 代替 routerLink = "color"

更新

使用这个

<a mat-list-item href="color-details">Color</a>

解决方案

您不能将不同的路径目录重定向到 angular,因此您需要为其添加自定义

示例:

<a href="home/color-details">Color</a>