vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比天壇街道網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式天壇街道網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋天壇街道地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。

vue-router 設(shè)置 history 模式

vue 項(xiàng)目往往會(huì)搭配 vue-router 官方路由管理器,它和 vue.js 的核心深度集成,讓構(gòu)建單頁(yè)面應(yīng)用變得易如反掌。vue-router 默認(rèn)為 hash 模式,使用 URL 的 hash 來(lái)模擬一個(gè)完整的 URL,所以當(dāng) URL 改變時(shí),頁(yè)面不會(huì)重新加載,只是根據(jù) hash 來(lái)更換顯示對(duì)應(yīng)的組件,這就是所謂的單頁(yè)面應(yīng)用。

但是使用默認(rèn)的 hash 模式時(shí),瀏覽器 URL 地址中會(huì)有一個(gè) # ,這跟以往的網(wǎng)站地址不太一樣,可能也會(huì)讓大部分人不習(xí)慣,甚至覺(jué)得它很丑。

想要去掉地址中的 # 也不難,只要更換 vue-router 的另一個(gè)模式 history 模式即可做到。

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

history 模式

當(dāng)你使用 history 模式時(shí),URL 就變回正常又好看的地址了,和大部分網(wǎng)站地址一樣,例如: http://zhengchang.com/name/id

不過(guò),這種模式有個(gè)坑,不僅需要前端開(kāi)發(fā)人員將模式改為 history 模式,還需要后端進(jìn)行相應(yīng)的配置。如果后端沒(méi)有正確的配置好,當(dāng)你訪問(wèn)你的項(xiàng)目地址時(shí),就會(huì)出現(xiàn) 404 ,這樣可就更不好看了。

官方給出了幾種常用的后端配置例子:

Apache

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉# 

nginx

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉# 

原生 Node.js

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

Internet Information Services (IIS)

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

因?yàn)槲业捻?xiàng)目后端服務(wù)是 IIS ,所以就著重分享一下 IIS 的相關(guān)配置 。

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

IIS 后端配置

首先,前端將 vue-router 模式修改為 history 模式,開(kāi)發(fā)完成并打包后,將文件部署到站點(diǎn)。站點(diǎn)的根目錄會(huì)有一些相關(guān)配置文件,這些后端人員會(huì)很清楚,前端開(kāi)發(fā)只需要告訴后端人員如何寫(xiě)去掉 # 的配置文件。

在站點(diǎn)的根目錄創(chuàng)建一個(gè) web.config 文件,內(nèi)容如上圖所示。起到關(guān)鍵作用的是 rewrite 標(biāo)簽中的代碼:

  • rule 標(biāo)簽:代表定義的一條規(guī)則。

  • match 標(biāo)簽:你的規(guī)則是什么要求,url 屬性?xún)?nèi)容就是要求(正則表達(dá)式)。

  • action 標(biāo)簽:type 屬性為 Rewrite(重寫(xiě)),url 屬性為目標(biāo)。意思是:如果滿(mǎn)足 match 標(biāo)簽中 url 屬性的正則,就執(zhí)行此配置(將符合match標(biāo)簽url要求的地址,重寫(xiě)為action標(biāo)簽中url屬性的地址)。

這個(gè)配置就和重定向一樣,將符合你要求的地址,重定向?yàn)槟阆胍牡刂?。下面是我的?xiàng)目中 IIS 的配置:

我的要求是,除了 "api" 或者 "token" 開(kāi)頭的地址,全部重定向?yàn)?" / " ,因?yàn)槲业慕涌诘刂肥?api 和 token 開(kāi)頭的,所以接口地址不能變。

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

api 接口

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

token 接口

然后服務(wù)端設(shè)置的是默認(rèn)顯示目錄下的 index.html ,而這個(gè) index.html 文件就是前端打包后生成的 html 文件。網(wǎng)站打開(kāi)了 html 文件,執(zhí)行對(duì)應(yīng)腳本,就會(huì)按照你的路由設(shè)置顯示對(duì)應(yīng)的組件內(nèi)容,瀏覽器地址中的 # 也被替換掉了。

還有一個(gè) rule 標(biāo)簽是配置我的圖片路徑的。

圖片在開(kāi)發(fā)環(huán)境中,都按照對(duì)應(yīng)的組件,分類(lèi)放到不同的文件夾中,例如: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 ”。

vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#

靜態(tài)圖片路徑

配置里的最難的可能是那個(gè)正則表達(dá)式,根據(jù)不同的需求配置不同的正則表達(dá)式,搞定正則就大功告成了!

關(guān)于“vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

文章名稱(chēng):vue如何實(shí)現(xiàn)項(xiàng)目地址去掉#-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://muchs.cn/article0/cosioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、小程序開(kāi)發(fā)建站公司、品牌網(wǎng)站建設(shè)、Google、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司