vue 項(xiàng)目地址去掉 #的方法
vue-router 設(shè)置 history 模式
vue 項(xiàng)目往往會(huì)搭配 vue-router 官方路由管理器,它和 vue.js 的核心深度集成,讓構(gòu)建單頁面應(yīng)用變得易如反掌。vue-router 默認(rèn)為 hash 模式,使用 URL 的 hash 來模擬一個(gè)完整的 URL,所以當(dāng) URL 改變時(shí),頁面不會(huì)重新加載,只是根據(jù) hash 來更換顯示對(duì)應(yīng)的組件,這就是所謂的單頁面應(yīng)用。
但是使用默認(rèn)的 hash 模式時(shí),瀏覽器 URL 地址中會(huì)有一個(gè) # ,這跟以往的網(wǎng)站地址不太一樣,可能也會(huì)讓大部分人不習(xí)慣,甚至覺得它很丑。
想要去掉地址中的 # 也不難,只要更換 vue-router 的另一個(gè)模式 history 模式即可做到。
history 模式
當(dāng)你使用 history 模式時(shí),URL 就變回正常又好看的地址了,和大部分網(wǎng)站地址一樣,例如: http://zhengchang.com/name/id
不過,這種模式有個(gè)坑,不僅需要前端開發(fā)人員將模式改為 history 模式,還需要后端進(jìn)行相應(yīng)的配置。如果后端沒有正確的配置好,當(dāng)你訪問你的項(xiàng)目地址時(shí),就會(huì)出現(xiàn) 404 ,這樣可就更不好看了。
官方給出了幾種常用的后端配置例子:
Apache
nginx
原生 Node.js
Internet Information Services (IIS)
因?yàn)槲业捻?xiàng)目后端服務(wù)是 IIS ,所以就著重分享一下 IIS 的相關(guān)配置 。
IIS 后端配置
首先,前端將 vue-router 模式修改為 history 模式,開發(fā)完成并打包后,將文件部署到站點(diǎn)。站點(diǎn)的根目錄會(huì)有一些相關(guān)配置文件,這些后端人員會(huì)很清楚,前端開發(fā)只需要告訴后端人員如何寫去掉 # 的配置文件。
在站點(diǎn)的根目錄創(chuàng)建一個(gè) web.config 文件,內(nèi)容如上圖所示。起到關(guān)鍵作用的是 rewrite 標(biāo)簽中的代碼:
- rule 標(biāo)簽:代表定義的一條規(guī)則。
- match 標(biāo)簽:你的規(guī)則是什么要求,url 屬性內(nèi)容就是要求(正則表達(dá)式)。
- action 標(biāo)簽:type 屬性為 Rewrite(重寫),url 屬性為目標(biāo)。意思是:如果滿足 match 標(biāo)簽中 url 屬性的正則,就執(zhí)行此配置(將符合match標(biāo)簽url要求的地址,重寫為action標(biāo)簽中url屬性的地址)。
這個(gè)配置就和重定向一樣,將符合你要求的地址,重定向?yàn)槟阆胍牡刂?。下面是我的?xiàng)目中 IIS 的配置:
我的要求是,除了 "api" 或者 "token" 開頭的地址,全部重定向?yàn)?" / " ,因?yàn)槲业慕涌诘刂肥?api 和 token 開頭的,所以接口地址不能變。
api 接口
token 接口
然后服務(wù)端設(shè)置的是默認(rèn)顯示目錄下的 index.html ,而這個(gè) index.html 文件就是前端打包后生成的 html 文件。網(wǎng)站打開了 html 文件,執(zhí)行對(duì)應(yīng)腳本,就會(huì)按照你的路由設(shè)置顯示對(duì)應(yīng)的組件內(nèi)容,瀏覽器地址中的 # 也被替換掉了。
還有一個(gè) rule 標(biāo)簽是配置我的圖片路徑的。
圖片在開發(fā)環(huán)境中,都按照對(duì)應(yīng)的組件,分類放到不同的文件夾中,例如:home 組件中的 banner 圖,路徑是 “ assets/home/banner.png ”。
我的項(xiàng)目打包后,生成了 index.html 和 static 文件夾,js、css、img等文件夾都在 static 中。所有的圖片全都放在“ /static/img/ ”下面,圖片路徑也會(huì)自動(dòng)更改為“ ./static/img/ ”。
我不希望圖片路徑重定向?yàn)椤?/ ”,所以規(guī)則就是:將符合“ ./static/img/name.png ”重定向?yàn)椤?/static/img/name.png ”。
靜態(tài)圖片路徑
配置里的最難的可能是那個(gè)正則表達(dá)式,根據(jù)不同的需求配置不同的正則表達(dá)式,搞定正則就大功告成了!
總結(jié)
以上所述是小編給大家介紹的vue 項(xiàng)目地址去掉 #的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
elementUI?el-radio?無法點(diǎn)擊的問題解決
本文主要介紹了elementUI?el-radio?無法點(diǎn)擊的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07vue實(shí)現(xiàn)兩列水平時(shí)間軸的示例代碼
本文主要介紹了vue實(shí)現(xiàn)兩列水平時(shí)間軸的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Vue修改項(xiàng)目啟動(dòng)端口號(hào)方法
今天小編就為大家分享一篇Vue修改項(xiàng)目啟動(dòng)端口號(hào)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Vue3獲取響應(yīng)式數(shù)據(jù)的四種方法
Vue 3 引入了一個(gè)全新的響應(yīng)式系統(tǒng),其中最核心的就是 reactive 和 ref,它們是實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)的基礎(chǔ),用于創(chuàng)建可以自動(dòng)跟蹤變化并更新視圖的對(duì)象和變量,本文介紹了Vue3獲取響應(yīng)式數(shù)據(jù)的四種方法,需要的朋友可以參考下2024-08-08vue 在服務(wù)器端直接修改請(qǐng)求的接口地址
這篇文章主要介紹了vue 在服務(wù)器端直接修改請(qǐng)求的接口地址的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-12-12Vue 權(quán)限控制的兩種方法(路由驗(yàn)證)
這篇文章主要介紹了Vue 權(quán)限控制的兩種方法(路由驗(yàn)證),每種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08