我目前正在開發angular 2應用程序。但我很難理解爲什麼我的路由工作在ng serve
而不是在nodemon
?我已經嘗試了基於我研究的多種方法,但他們並不像我想象的那樣工作。 (可能是由於我缺乏瞭解)Angular 2路由只適用於ng服務,但不適用於nodemon
方法1
添加在app-routing.module.ts
useHash: true
但是,這會導致所有的URL有#
出現在它。我在想這是爲了調試目的吧?
const routes = [
{ path: '', component: sampleComponent1 },
{ path: 'page2', component: sampleComponent2 }
];
@NgModule({
imports: [RouterModule.forRoot(routes, {useHash: true})],
exports: [RouterModule]
})
方法2
變化app.js
渲染index
每當拋出錯誤。此方法在URL中不會有#
,但在我的控制檯中將始終返回錯誤,如GET /page2 404 1.688 ms - 987
。
app.use(function (err, req, res, next) {
// set locals, only providing error in development
console.log(err.message);
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
res.status(err.status || 500);
res.render('error');
});
所以到現在爲止,我堅持更多的方法2作爲URL不顯示在它#
,但我不知道,如果方法2是做了正確的道路。有人可以幫我解決這個問題嗎?
'useHash'不僅僅用於調試。這是一個設計選擇。 – HaveSpacesuit
您是否嘗試過構建並使用nodemon服務dist文件夾? – Janpan
@Janpan是的,我會在運行nodemon之前始終做一個構建 – JustStarted