我正在设置Play Framework 2.5
服务器以使用Angular
的SPA(单页应用)方法,并希望使用PathLocationStrategy
删除HashTags({{ 1}})
我第一次点击服务器时页面加载正常,但如果我在书签后刷新或回来,则会#example
在Angular documentation for Angular Router中,它声明需要服务器端配置
有很多关于如何使用404
或nginx
执行此操作的信息,但是如何在没有代理权的情况下在Play中执行此操作?
这是我的角度路由器配置:
apache
播放const routes: Routes = [
{
path: 'main',
component: JobsComponent
},
{
path: 'job-details',
component: JobDetailsComponent
},
{
path: 'job-submit',
component: JobSubmitComponent
},
{
path: '',
redirectTo: '/main',
pathMatch: 'full'
},
{
path: '**',
redirectTo: '/main',
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class AppRoutingModule { }
routes.conf
答案 0 :(得分:1)
当角度将网址更改为GET / controllers.Assets.at(path="/public", file="index.html")
,您的服务器不参与时,会发生什么。如果您按刷新,浏览器将请求/main
,它将找不到它。
您最好的方法是制作一条能够捕获所需路线并将其发送回索引的路线。这是一个例子
/main
# Place at the bottom of your routes.conf to be checked last
GET /*anyUrl controllers.CatchAllController.catchAll(anyUrl)
所有链接/刷新应按预期工作,无需代理