[英]Angular 4 - All routes not working
我有一個Angular應用程序,可以通過ng serve
在localhost:4200
正常工作; 節點服務器位於localhost:3000
。
當我執行ng build
時,由於app.use(express.static(path.join(__dirname, 'path/to/dist')));
正在創建一個捆綁文件,並在localhost:3000
正確提供該文件app.use(express.static(path.join(__dirname, 'path/to/dist')));
但是在localhost:4200/user/id
上工作的路由在localhost:3000/user/id
給出了一個錯誤,指出它Cannot GET /user/id
。
任何想法導致問題的原因是什么? 我在index.html
文件中包含了<base href="/">
。
聽起來好像是您的路由位置策略導致了此問題。
直接來自Google的注釋:
Angular 4文檔
網址取決於您選擇的策略:
PathLocationStrategy:本地主機:3000 /用戶/ ID
HashLocationStrategy:本地主機:3000 /#/用戶/ ID
您可以在應用模塊中修改useHash屬性以在兩者之間切換:
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot(routes, { useHash: true }) // .../#/user/id
], ...
});
也就是說,如果URL不匹配,則GET應該會失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.