欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-router history模式服務(wù)器端配置過程記錄

 更新時(shí)間:2021年06月08日 11:34:33   作者:既是如此  
vue路由有hash和history兩種模式,這篇文章主要給大家介紹了關(guān)于vue-router history模式服務(wù)器端配置的相關(guān)資料,需要的朋友可以參考下

history路由

history模式是指使用HTML5的historyAPI實(shí)現(xiàn)客戶端路由的模式,它的典型表現(xiàn)就是去除了hash模式中url路徑中的#。在使用Vue-Router時(shí)開啟history模式非常容易,只需要在實(shí)例化路由時(shí)傳入mode:'history'配置項(xiàng)即可,但缺少服務(wù)端支持時(shí),基于historyAPI的路由無法從url地址欄直接訪問指定頁(yè)面,這個(gè)很容易理解,因?yàn)閡rl地址欄里輸入后回車相當(dāng)于發(fā)送了一次GET請(qǐng)求,那么不帶#的路由路徑就和普通的API接口是一樣的,既然服務(wù)端并沒有定義這樣的接口,那直接訪問時(shí)出現(xiàn)404頁(yè)面就很正常了。

官方示例

官方提供了很多處理這種場(chǎng)景的方式,以node.js版本的處理方案為例:

const http = require('http')
const fs = require('fs')
const httpPort = 80

http.createServer((req, res) => {
  fs.readFile('index.htm', 'utf-8', (err, content) => {
    if (err) {
      console.log('We cannot open "index.htm" file.')
    }

    res.writeHead(200, {
      'Content-Type': 'text/html; charset=utf-8'
    })

    res.end(content)
  })
}).listen(httpPort, () => {
  console.log('Server listening on: http://localhost:%s', httpPort)
})

不難看出,它的處理思路就是所有請(qǐng)求都強(qiáng)制重定向到首頁(yè),相當(dāng)于服務(wù)端屏蔽了訪問資源不存在的情況,而將路由的工作留給客戶端自己去處理,這樣啟用了history模式的前端路由在直接定位到子頁(yè)面時(shí)就不會(huì)報(bào)錯(cuò)了。

vue-router history模式配置

vue-router的history模式需要將路由配置中的mode設(shè)置成history,同時(shí)還需要在服務(wù)器端進(jìn)行相應(yīng)的配置。

與hash模式相比,在history模式下,頁(yè)面的url中會(huì)少一些如#這樣的符號(hào):

hash:www.example.com/#/login

history:www.example.com/login

單頁(yè)應(yīng)用程序中,在history模式下瀏覽器會(huì)向服務(wù)器請(qǐng)求這個(gè)頁(yè)面,但是服務(wù)器端并不存在這個(gè)頁(yè)面于是就返回404。所以這個(gè)時(shí)候就需要給服務(wù)器端進(jìn)行配置:除了靜態(tài)資源以外都需要返回單頁(yè)應(yīng)用的index.html。

服務(wù)器配置——nodejs

在nodejs服務(wù)器中需要引入connect-history-api-fallback這個(gè)模塊來處理history模式,并在使用處理靜態(tài)資源的中間件前使用這個(gè)模塊:

const path = require('path')
// 導(dǎo)入處理history模式的模塊
const history = require('connect-history-api-fallback')
const express = require('express')

const app = express()

// 注冊(cè)處理history模式的中間件
app.use(history())
// 處理靜態(tài)資源的中間件
app.use(express.static(path.join(__dirname, './web')))

app.listen(3000, () => {
    console.log('service started at port 3000')
})

服務(wù)器配置——nginx

先將打包后的文件放入html文件夾下,再打開conf文件夾下nginx.conf文件,修改如下配置:

http {
    # ...other config
    server {
        # ...other config
        location / {
            root html;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
    }
}

總結(jié)

到此這篇關(guān)于vue-router history模式服務(wù)器端配置的文章就介紹到這了,更多相關(guān)vue-router history模式配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3中的伸縮菜單組件

    vue3中的伸縮菜單組件

    這篇文章主要介紹了vue3中的伸縮菜單組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue3+vueuse實(shí)現(xiàn)放大鏡示例詳解

    Vue3+vueuse實(shí)現(xiàn)放大鏡示例詳解

    這篇文章主要為大家介紹了Vue3+vueuse實(shí)現(xiàn)放大鏡示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • nextTick能否獲取到最新dom原理解析

    nextTick能否獲取到最新dom原理解析

    這篇文章主要為大家介紹了nextTick能否獲取到最新dom原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • VueJS事件處理器v-on的使用方法

    VueJS事件處理器v-on的使用方法

    本篇文章主要介紹了VueJS事件處理器v-on的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue中this.$refs.name.offsetHeight獲取不到值問題

    vue中this.$refs.name.offsetHeight獲取不到值問題

    這篇文章主要介紹了vue中this.$refs.name.offsetHeight獲取不到值問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue中各種deep的區(qū)別解析

    vue中各種deep的區(qū)別解析

    在Vue3中,推薦使用::deep作為深度選擇器,它比Vue2中的::v-deep語(yǔ)法更簡(jiǎn)潔,::v-deep、::deep、:deep()、>>>和/deep/都是用于穿透組件作用域的選擇器,但Vue3更傾向于使用::deep或:deep(),感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Vue + Element-ui的下拉框el-select獲取額外參數(shù)詳解

    Vue + Element-ui的下拉框el-select獲取額外參數(shù)詳解

    這篇文章主要介紹了Vue + Element-ui的下拉框el-select獲取額外參數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 詳解vue-router基本使用

    詳解vue-router基本使用

    本篇文章主要介紹了詳解vue-router基本使用,詳細(xì)的介紹了vue-router的概念和用法,有興趣的可以了解一下。
    2017-04-04
  • Vue中router-link如何添加mouseover提示

    Vue中router-link如何添加mouseover提示

    這篇文章主要介紹了Vue中router-link如何添加mouseover提示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于vue2框架的機(jī)器人自動(dòng)回復(fù)mini-project實(shí)例代碼

    基于vue2框架的機(jī)器人自動(dòng)回復(fù)mini-project實(shí)例代碼

    本篇文章主要介紹了基于vue2框架的機(jī)器人自動(dòng)回復(fù)mini-project實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-06-06

最新評(píng)論