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

首頁 > 語言 > JavaScript > 正文

Vue Router history模式的配置方法及其原理

2024-05-06 15:38:36
字體:
來源:轉載
供稿:網友

vue-router分為 hashhistory模式,前者為其默認模式,url的表現形式為 http://yoursite.com#home,比較難看。后者的url表現形式為 http://yoursite.com/home,比較美觀。

但如果要使用 history模式,我們需要在后端進行額外配置。本文將討論如何配置以及為什么要這樣配置。

history模式的配置方法

我們來看看官方文檔是教我們怎么配置的:HTML5 History 模式。

首先要將 mode設置為 history

const router = new VueRouter({ mode: 'history', routes: [...]})

然后設置后端(這里采用的nginx):

location / { try_files $uri $uri/ /index.html;}

然后就......沒了!顯然官方的教程講的比較簡略,并且我們參照這個教程實際上還是會遇到一些問題。

history模式的配置實踐及原理

強烈建議:閱讀這部分之前,先看一下nginx的這部分文檔和 這部分文檔。

既然官方文檔教我們這樣做了,我們就按照它說的來實踐一下。

只配置前端的情況

首先,我們將 mode設置為 history,但不配置后端。然后,假如我們的路由是長這個樣子的:

const routes = [  {path: '/home', component: Home},  {path: '/', redirect: '/home'}];

我們用nginx部署項目,然后在地址欄輸入 http://localhost:8080(這里配置的端口是8080),你會發現地址欄之后會變為 http://localhost:8080/home,并且 看起來一切正常, 似乎路由也可以正常切換而不會發生其他問題(實際上會發生問題,后面會進行討論)。看起來好像不需要按官網告訴我們的那樣配置后端也能實現 history模式,但如果你直接在地址欄輸入 http://localhost:8080/home,你會發現你獲得了一個404頁面。

那么 http://localhost:8080為什么可以(部分)正常顯示呢?道理其實很簡單,你訪問 http://localhost:8080時,靜態服務器(這里是nginx)會默認去目標目錄(這里為 locationroot所指定的目錄)下尋找 index.html(這是nginx在端口后沒有額外路徑時的默認行為),目標目錄下有這個文件嗎?有!然后靜態服務器返回給你這個文件,配合 vue-router進行轉發,自然可以(部分)正常顯示。

但如果直接訪問 http://localhost:8080/home,靜態服務器會去目標目錄下尋找 home文件,目標目錄下有這個文件嗎?沒有!所以自然就404了。

配置后端

為了達到直接訪問 http://localhost:8080/home也可以成功的目的,我們需要對后端(這里即nginx)進行一些配置。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 凤城市| 宁国市| 永安市| 峨眉山市| 中卫市| 前郭尔| 万年县| 威海市| 安康市| 扎兰屯市| 武功县| 景德镇市| 广汉市| 平塘县| 曲水县| 新干县| 大竹县| 广水市| 泾川县| 原阳县| 育儿| 洞头县| 嫩江县| 泽普县| 崇左市| 上高县| 财经| 临汾市| 云梦县| 景宁| 南召县| 太仆寺旗| 金门县| 房产| 三穗县| 石阡县| 永城市| 鸡东县| 蓬溪县| 霍城县| 福建省|