當我們運行vue項目時,一切都很美好,但是打包發布到線上時,那是真糟心。
之前有遇到過短信分享的鏈接包含#號不被識別的問題,所以使用過一段時間路由的history模式,但是必須放在域名根目錄下,而且我們的項目還不能使用二級路由,我一度認為確實就是這樣子的,大概就是當時懶癌發作了吧,路由的history模式就是去掉#號,使路徑變得美觀(我叫它玫瑰,漂亮但是帶着刺的危險)
history模式傳送門:https://router.vuejs.org/zh/guide/essentials/history-mode.html
1、assetsPublicPath
config/index.js文件中的assetsPublicPath變量我們一向配置為./
這樣無論服務器的nginx配置的是根目錄還是二級三級目錄,我們都是支持的
當使用history模式並且是根目錄的時候,必須使用/才能適配二級路由(如果沒有二級路由./依然可以)
nginx配置如下:(關鍵的一句話是try_files,不管怎么輸入地址都指向index.html)

2、二級目錄
先配置nginx:

再配置config/index.js文件中的assetsPublicPath
assetsPublicPath:'/testweb/',
最后設置路由:

大功告成了,三級菜單如法炮制即可
總結,雖然成功了,除非不得已,我還是不建議使用history,二級或者三級目錄在history模式下必須前后端同時配置,這就是個潛在風險
參考博文:https://segmentfault.com/a/1190000015753352?utm_source=tag-newest
作者:kelezxw
鏈接:https://www.jianshu.com/p/79f14f91f9db
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。