最近在用angular寫一個後臺的項目,遇到一個小問題。webpack
進入某個路由頁面以後,手動觸發瀏覽器的刷新,而後就404了。。。web
翻看Angular的文檔,發現Google早已經給咱們想到了這個問題的處理方案瀏覽器
那就是Angular的hash風格的url,就是在瀏覽器的url裏面加入一個#號app
這樣刷新的話,瀏覽器會忽略url的#號後面的,,等頁面價值完成以後,纔會再次處理#號。ide
若是我沒記錯的話,在非spa網頁程序裏面#是用於網頁錨點處理。可是在spa程序裏面,#竟然還能夠這麼用,真是佩服Google工程師的腦洞啊url
在app.module.ts裏面引入hash風格的庫spa
import { HashLocationStrategy, LocationStrategy } from "@angular/common";
而後再放到provider裏面去code
providers: [ {
provide: LocationStrategy,
useClass: HashLocationStrategy
}]
再次在Vscode裏面保存一下,webpack會自動從新編譯並刷新瀏覽器。這時候,url的風格就成了一個帶#的,這時候隨便怎麼刷新瀏覽器,都能正常了blog