我是angular2和koajs的新手。也许这是一个愚蠢的问题。
我有一个带有路由表的angular2 app,如下所示:
const appRoutes: Routes = [
{
path: 'pats/report/settings',
component: PatsReportSettingsComponent
},
{
path: 'pats/report/:id',
component: PatsReportComponent,
pathMatch: 'full'
},
{
path: 'pats/report/login',
component: PatsLoginComponent,
pathMatch: 'full'
},
{
path: '.',
redirectTo: 'pats/report/login',
pathMatch: 'full'
},
{
path: '**',
component: Pats404PageComponent,
pathMatch: 'full'
},
];
如果用户通过根网址(http://localhost:3000)访问我们的应用,然后导航到子页面(例如:http://localhost:3000/pats/report/settings),一切都很好,因为angular2 app将在内部处理子页面导航并且不会向后端发出http请求。
但是如果用户直接使用子页面URL访问我们的应用程序,例如:http://localhost:3000/pats/report/settings,后端koajs应用程序将以404状态响应,因为它不存在路径'pats / report / settings'的路径后端。
解决此问题的正确方法是什么?
我应该为后端路由器中的所有客户端子页面路径添加路由并使用index.html进行响应吗?
答案 0 :(得分:1)
我不认识Koajs,但你需要一些中间件。你的后端需要将这些请求重定向到localhost:3000/
但是让URL保持原样,这样角度才能发挥其魔力!
请参阅koajs的其他附件:
另一种选择:使用Hashbang-URL! Angular2 URL-Styles