【Angular】——路由之重新整理報404

趙寒發表於2017-05-28

    專案進入測試期,發現了一個開發過程中沒有發現的問題:釋出後訪問網站,使用過程一切正常:


    但只要重新整理,就會:


      開始查了一些資料:大都是關於這樣的說法:


    那如果必須要這樣解決的話,不就違背了前後端分離的原則?又開始讓後端控制前端,這樣前端自己封裝路由又有何深刻的意義。因為有著這樣的信念:肯定有前端的解決方案,所以繼續查資料,最終發現了我想要的,在此分享給大家:

    首先,我用的是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錯誤了。 
                              

   

相關文章