[Angular] 網頁重新整理變404
解決方法
【Angular】——路由之重新整理報404
https://iter01.com/149367.html
專案進入測試期,發現了一個開發過程中沒有發現的問題:釋出後訪問網站,使用過程一切正常:
但只要重新整理,就會:
開始查了一些資料:大都是關於這樣的說法:
那如果必須要這樣解決的話,不就違背了前後端分離的原則?又開始讓後端控制前端,這樣前端自己封裝路由又有何深刻的意義。因為有著這樣的信念:肯定有前端的解決方案,所以繼續查資料,最終發現了我想要的,在此分享給大家:
首先,我用的是tomcat釋出、http://localhost:8080/vb/type是第一個頁面,第一次跳轉這個頁面,一切正常,重新整理,則報404。這是因為在介面出現後,瀏覽器則不再訪問前端,除非有按鈕等觸發,所以重新整理後瀏覽器不再走前端的路由,而是訪問後端,而後端並沒有定義該路由,所以找不到路徑。這算是Angular的一個坑吧......
解決方案:
配置app.module.ts
在NgModule中新增:
providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy, }], 如果你的服務也許在此,則:
providers: [DataService, { provide: LocationStrategy, useClass: HashLocationStrategy, }], 另外需要引入:
import {HashLocationStrategy, LocationStrategy} from '@angular/common'; OK,這樣設定後,訪問Angular,會自動在根節點後面新增一個#錨點。在此重新整理就不會報404錯誤了。
留言
張貼留言