带参数化路线的Angular 在刷新时显示空白页(IIS)

p5fdfcr1  于 2022-11-12  发布在  Angular
关注(0)|答案(2)|浏览(232)

我已经实现了一个解决方案来解决我的Angular 应用程序中页面刷新时的404错误。为此,我将以下代码放在IIS上我的网站文件夹中的web.config文件中:

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

这段代码可以成功的处理像“/blog”这样的静态路由,但是不能处理像“/blog/category:categoryName”这样的路由。希望你能帮助我;我挣扎了几个月...
下面是使用参数化路线刷新页面时出现的错误示例:

6l7fqoea

6l7fqoea1#

我建议在项目中创建页面404,并将其添加到app-routing. module. ts中。
示例代码片段如下:

const routes: Routes = [{
    path: 'home',
    component: HomeComponent,
  },
  {
    path: '404',
    component: PagenotfoundComponent
  },
  {
    path: '**',
    redirectTo: '404'
  }
];

在上面的代码中,它会将试图访问除所提供的路由之外的任何页面的用户重定向到Pagenotfound组件。Path: '**'中的**在Angular中表示通配符路由。这表示任何与您配置中的现有路由不匹配的路由都将使用此路由。

o4tp2gmn

o4tp2gmn2#

启用失败请求跟踪以获取URL重写规则失败的详细信息,另一种方法是设置自定义错误页,如下所示:

相关问题