国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue 項目地址去掉 #的方法

2019-11-19 12:40:05
字體:
來源:轉載
供稿:網友

vue-router 設置 history 模式

vue 項目往往會搭配 vue-router 官方路由管理器,它和 vue.js 的核心深度集成,讓構建單頁面應用變得易如反掌。vue-router 默認為 hash 模式,使用 URL 的 hash 來模擬一個完整的 URL,所以當 URL 改變時,頁面不會重新加載,只是根據 hash 來更換顯示對應的組件,這就是所謂的單頁面應用。

但是使用默認的 hash 模式時,瀏覽器 URL 地址中會有一個 # ,這跟以往的網站地址不太一樣,可能也會讓大部分人不習慣,甚至覺得它很丑。

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

history 模式

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

不過,這種模式有個坑,不僅需要前端開發人員將模式改為 history 模式,還需要后端進行相應的配置。如果后端沒有正確的配置好,當你訪問你的項目地址時,就會出現 404 ,這樣可就更不好看了。

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

Apache

 

nginx

 

原生 Node.js

Internet Information Services (IIS)

因為我的項目后端服務是 IIS ,所以就著重分享一下 IIS 的相關配置 。

IIS 后端配置

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

在站點的根目錄創建一個 web.config 文件,內容如上圖所示。起到關鍵作用的是 rewrite 標簽中的代碼:

  • rule 標簽:代表定義的一條規則。
  • match 標簽:你的規則是什么要求,url 屬性內容就是要求(正則表達式)。
  • action 標簽:type 屬性為 Rewrite(重寫),url 屬性為目標。意思是:如果滿足 match 標簽中 url 屬性的正則,就執行此配置(將符合match標簽url要求的地址,重寫為action標簽中url屬性的地址)。

這個配置就和重定向一樣,將符合你要求的地址,重定向為你想要的地址。下面是我的項目中 IIS 的配置:

我的要求是,除了 "api" 或者 "token" 開頭的地址,全部重定向為 " / " ,因為我的接口地址是 api 和 token 開頭的,所以接口地址不能變。

api 接口

token 接口

然后服務端設置的是默認顯示目錄下的 index.html ,而這個 index.html 文件就是前端打包后生成的 html 文件。網站打開了 html 文件,執行對應腳本,就會按照你的路由設置顯示對應的組件內容,瀏覽器地址中的 # 也被替換掉了。

還有一個 rule 標簽是配置我的圖片路徑的。

圖片在開發環境中,都按照對應的組件,分類放到不同的文件夾中,例如:home 組件中的 banner 圖,路徑是 “ assets/home/banner.png ”。

我的項目打包后,生成了 index.html 和 static 文件夾,js、css、img等文件夾都在 static 中。所有的圖片全都放在“ /static/img/ ”下面,圖片路徑也會自動更改為“ ./static/img/ ”。

我不希望圖片路徑重定向為“ / ”,所以規則就是:將符合“ ./static/img/name.png ”重定向為“ /static/img/name.png ”。

靜態圖片路徑

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

總結

以上所述是小編給大家介紹的vue 項目地址去掉 #的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗阳县| 滦平县| 徐水县| 海淀区| 手机| 新干县| 柳江县| 石首市| 抚松县| 廉江市| 无极县| 陆川县| 慈溪市| 平武县| 华亭县| 巴林左旗| 海南省| 镇坪县| 旺苍县| 巩义市| 乐亭县| 乳山市| 日照市| 康定县| 河曲县| 彭山县| 英超| 手游| 大连市| 峡江县| 项城市| 南平市| 广宁县| 登封市| 克山县| 河北区| 托克托县| 泗水县| 牟定县| 土默特右旗| 娄烦县|