最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE配置history路由模式配置詳細(xì)舉例

 更新時(shí)間:2023年12月08日 09:58:35   作者:澄風(fēng)  
這篇文章主要給大家介紹了關(guān)于VUE配置history路由模式配置的相關(guān)資料,History模式是Vue路由的另一種模式,在History模式下URL中的路徑不再使用#符號(hào),而是直接使用正常的路徑形式,需要的朋友可以參考下

VUE 配置history路由模式配置

vue-router 默認(rèn) hash 模式 —— 使用 URL 的 hash 來(lái)模擬一個(gè)完整的 URL,于是當(dāng) URL 改變時(shí),頁(yè)面不會(huì)重新加載。

如果不想要很丑的 hash,我們可以用路由的 history 模式,這種模式充分利用 history.pushState API 來(lái)完成 URL 跳轉(zhuǎn)而無(wú)須重新加載頁(yè)面。

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

當(dāng)你使用 history 模式時(shí),URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!

不過(guò)這種模式要玩好,還需要后臺(tái)配置支持。因?yàn)槲覀兊膽?yīng)用是個(gè)單頁(yè)客戶端應(yīng)用,如果后臺(tái)沒(méi)有正確的配置,當(dāng)用戶在瀏覽器直接訪問(wèn) http://oursite.com/user/id 就會(huì)返回 404,這就不好看了。

所以呢,你要在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源:如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè) index.html 頁(yè)面,這個(gè)頁(yè)面就是你 app 依賴的頁(yè)面。

后端配置例子

注意:下列示例假設(shè)你在根目錄服務(wù)這個(gè)應(yīng)用。如果想部署到一個(gè)子目錄,你需要使用 Vue CLI 的 publicPath 選項(xiàng) (opens new window)和相關(guān)的 router base property (opens new window)。你還需要把下列示例中的根目錄調(diào)整成為子目錄 (例如用 RewriteBase /name-of-your-subfolder/ 替換掉 RewriteBase /)。

Apache

<IfModule mod_negotiation.c>
  Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

除了 mod_rewrite,你也可以使用 FallbackResource (opens new window)。

nginx

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

node

#原生 Node.js
const http = require('http')
const fs = require('fs')
const httpPort = 80
http.createServer((req, res) => {
  fs.readFile('index.html', 'utf-8', (err, content) => {
    if (err) {
      console.log('We cannot open "index.html" 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)
})

基于 Node.js 的 Express

對(duì)于 Node.js/Express,請(qǐng)考慮使用 connect-history-api-fallback 中間件 (opens new window)。

Internet Information Services (IIS)

安裝 IIS UrlRewrite(opens new window)

在你的網(wǎng)站根目錄中創(chuàng)建一個(gè) web.config 文件,內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Caddy

rewrite {
    regexp .*
    to {path} /
}

Firebase 主機(jī)

在你的 firebase.json 中加入:

{
  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

給個(gè)警告,因?yàn)檫@么做以后,你的服務(wù)器就不再返回 404 錯(cuò)誤頁(yè)面,因?yàn)閷?duì)于所有路徑都會(huì)返回 index.html 文件。為了避免這種情況,你應(yīng)該在 Vue 應(yīng)用里面覆蓋所有的路由情況,然后再給出一個(gè) 404 頁(yè)面。

const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '*', component: NotFoundComponent }
  ]
})

或者,如果你使用 Node.js 服務(wù)器,你可以用服務(wù)端路由匹配到來(lái)的 URL,并在沒(méi)有匹配到路由的時(shí)候返回 404,以實(shí)現(xiàn)回退。更多詳情請(qǐng)查閱 Vue 服務(wù)端渲染文檔

proxytable

如果您在 Vue 中啟用了 History 模式,并且在瀏覽器中訪問(wèn)路由時(shí),可能會(huì)遇到找不到 chunk.xxx.js 文件的問(wèn)題。

這是因?yàn)樵?History 模式下,Vue Router 使用 HTML5 History API 來(lái)管理應(yīng)用程序的路由。當(dāng)用戶在瀏覽器中訪問(wèn)應(yīng)用程序的路由時(shí),瀏覽器會(huì)向服務(wù)器發(fā)送請(qǐng)求,以獲取相應(yīng)的文件。如果服務(wù)器沒(méi)有正確地配置路由,或者沒(méi)有正確地處理路由請(qǐng)求,那么瀏覽器就會(huì)收到 404 錯(cuò)誤,無(wú)法加載相應(yīng)的 chunk 文件。

為了解決這個(gè)問(wèn)題,您需要確保您的服務(wù)器正確地處理路由請(qǐng)求,并正確地返回相應(yīng)的文件。如果您正在使用 webpack 打包您的應(yīng)用程序,那么您需要確保在 webpack 配置中設(shè)置了正確的 publicPath 選項(xiàng)。publicPath 選項(xiàng)指定了 webpack 在打包時(shí)生成的文件的 URL 前綴,以便瀏覽器可以正確地加載這些文件。

例如,如果您的應(yīng)用程序部署在根目錄下,那么您可以將 publicPath 設(shè)置為:

module.exports = {
  // ...
  output: {
    publicPath: '/',
    // ...
  },
  // ...
}

如果您的應(yīng)用程序部署在子目錄下,例如 /my-app/,那么您需要將 publicPath 設(shè)置為該子目錄的路徑:

module.exports = {
  // ...
  output: {
    publicPath: '/my-app/',
    // ...
  },
  // ...
}

需要注意的是,在設(shè)置 publicPath 選項(xiàng)時(shí),您需要將其設(shè)置為實(shí)際部署應(yīng)用程序的 URL 路徑。如果您在開(kāi)發(fā)環(huán)境下使用了代理服務(wù)器(ProxyTable),那么您需要在代理服務(wù)器上設(shè)置正確的重寫(xiě)規(guī)則,以確保請(qǐng)求被正確地轉(zhuǎn)發(fā)到您的應(yīng)用程序。

總結(jié)

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

相關(guān)文章

  • 基于vue實(shí)現(xiàn)多功能樹(shù)形結(jié)構(gòu)組件的示例代碼

    基于vue實(shí)現(xiàn)多功能樹(shù)形結(jié)構(gòu)組件的示例代碼

    一個(gè)優(yōu)雅展示樹(shù)形結(jié)構(gòu)數(shù)據(jù)的 Vue 組件,遞歸渲染每個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn),支持自定義顏色、文本和布局,通過(guò)獨(dú)特的樣式巧妙處理不同層級(jí),為用戶打造豐富的視覺(jué)盛宴,文中通過(guò)代碼給大家介紹的非常詳細(xì),感興趣的同學(xué)可以自己動(dòng)手嘗試一下
    2024-02-02
  • vue路由攔截器和請(qǐng)求攔截器知識(shí)點(diǎn)總結(jié)

    vue路由攔截器和請(qǐng)求攔截器知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給各位整理的是一篇關(guān)于vue路由攔截器和請(qǐng)求攔截器知識(shí)點(diǎn)總結(jié)文章,有興趣的朋友們學(xué)習(xí)下。
    2019-11-11
  • Vue3使用setup監(jiān)聽(tīng)props實(shí)現(xiàn)方法詳解

    Vue3使用setup監(jiān)聽(tīng)props實(shí)現(xiàn)方法詳解

    這篇文章主要為大家介紹了Vue3使用setup監(jiān)聽(tīng)props實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 詳解vue中使用微信jssdk

    詳解vue中使用微信jssdk

    這篇文章主要介紹了vue中使用微信jssdk,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue關(guān)于對(duì)象直接賦值的坑及解決

    Vue關(guān)于對(duì)象直接賦值的坑及解決

    這篇文章主要介紹了Vue關(guān)于對(duì)象直接賦值的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue實(shí)現(xiàn)彈出框內(nèi)嵌頁(yè)面展示并添加tab切換展示實(shí)時(shí)加載

    vue實(shí)現(xiàn)彈出框內(nèi)嵌頁(yè)面展示并添加tab切換展示實(shí)時(shí)加載

    彈窗效果是在Web開(kāi)發(fā)中經(jīng)常用到的一種交互效果,這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)彈出框內(nèi)嵌頁(yè)面展示并添加tab切換展示實(shí)時(shí)加載的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • vue和小程序項(xiàng)目中使用iconfont的方法

    vue和小程序項(xiàng)目中使用iconfont的方法

    這篇文章主要介紹了vue中和小程序中使用iconfont的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Vue 實(shí)現(xiàn)穿梭框功能的詳細(xì)代碼

    Vue 實(shí)現(xiàn)穿梭框功能的詳細(xì)代碼

    本文給大家介紹Vue 實(shí)現(xiàn)穿梭框功能,代碼分為css,html和js代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-10-10
  • antd?Vue實(shí)現(xiàn)Login登錄頁(yè)面布局案例詳解?附帶驗(yàn)證碼驗(yàn)證功能

    antd?Vue實(shí)現(xiàn)Login登錄頁(yè)面布局案例詳解?附帶驗(yàn)證碼驗(yàn)證功能

    這篇文章主要介紹了antd?Vue實(shí)現(xiàn)Login登錄頁(yè)面布局案例詳解附帶驗(yàn)證碼驗(yàn)證功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • vue函數(shù)@click.prevent的使用解析

    vue函數(shù)@click.prevent的使用解析

    這篇文章主要介紹了vue函數(shù)@click.prevent的使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評(píng)論

涿州市| 民乐县| 嘉鱼县| 万宁市| 卓尼县| 阿坝县| 梁河县| 舟山市| 乌兰县| 左贡县| 宜兴市| 万载县| 泰和县| 清原| 陇南市| 图片| 琼结县| 宜黄县| 临清市| 娱乐| 陕西省| 灵川县| 栖霞市| 鸡泽县| 南部县| 锡林郭勒盟| 岑巩县| 镇沅| 桓台县| 赣榆县| 加查县| 英超| 关岭| 泗水县| 咸阳市| 阳原县| 家居| 土默特左旗| 和林格尔县| 阜宁县| 阿坝县|