我使用.Net core 2.0,visual studio 2017构建了一个角度4应用程序,并部署到IIS Web服务器上的生产服务器。刷新时路由在localhost上正常工作,但不能正常工作。我在web.config文件中看到了IIS的stackoverflow中的一些答案。但我的项目结构下没有web.config文件。我可以手动添加它还是如何修复它。
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" 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>
这是我的app.routing文件
const appRoutes: Routes = [
{ path: '', redirectTo: 'admin-dashboard', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'forgotpassword', component: ForgotPasswordComponent },
{ path: 'user-dashboard', component: DashboardComponent, canActivate: [AuthGuard] },
{ path: 'notifications', component: NotificationsComponent, canActivate: [AuthGuard] },
{
path: 'admin-dashboard', component: AdminDashboardComponent, canActivate: [AuthGuard],
children: [
{ path: '', component: ChairmanMessagesComponent, canActivate: [AuthGuard]},
{ path: 'quotes', component: QuotesComponent, canActivate: [AuthGuard] },
{ path: 'users', component: UsersComponent, canActivate: [AuthGuard] },
{ path: 'notifications', component: AdminNotificationsComponent, canActivate: [AuthGuard] },
]
}, ];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
请让我知道。
答案 0 :(得分:2)
在后端(服务器端)只是将所有(404)错误/无法识别的请求映射到索引(包括所有角度构建脚本)。然后它返回索引。在前端,你可以得到你需要的东西。它映射到你需要的页面。
答案 1 :(得分:2)
在以下路径上刷新浏览器时,我遇到了同样的问题:/ users 我通过创建一个文件夹来修复它:users 并在文件中:index.html
<!<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>redirect users</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
window.location.href = 'http://my-server:4200/';
</script>
</head>
<body>
</body>
</html>
我已阅读的其他解决方案:
1)使您的服务器在404错误时重定向到index.html。
2)让您的apache或iis在每个路由路径的末尾添加/index.html
答案 2 :(得分:0)
路由的应用必须回退到index.html,所以请查看此link并为IIS添加配置,如果您正在使用的,或在此处编辑您的配置
<action type="Rewrite" url="/index.html" />