国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VUE 配置history路由模式配置

這篇具有很好參考價(jià)值的文章主要介紹了VUE 配置history路由模式配置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

VUE 配置history路由模式配置

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

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

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

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

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

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

后端配置例子
注意:下列示例假設(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àn)閷?duì)于所有路徑都會(huì)返回 index.html 文件。為了避免這種情況,你應(yīng)該在 Vue 應(yīng)用里面覆蓋所有的路由情況,然后再給出一個(gè) 404 頁面。

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

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

proxytable

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

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

為了解決這個(gè)問題,您需要確保您的服務(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 路徑。如果您在開發(fā)環(huán)境下使用了代理服務(wù)器(ProxyTable),那么您需要在代理服務(wù)器上設(shè)置正確的重寫規(guī)則,以確保請(qǐng)求被正確地轉(zhuǎn)發(fā)到您的應(yīng)用程序。文章來源地址http://www.zghlxwxcb.cn/news/detail-495095.html

到了這里,關(guān)于VUE 配置history路由模式配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue路由的兩種模式 hash與history

    vue路由的兩種模式 hash與history

    Vue 路由是 Vue.js 框架提供的一種機(jī)制,用于實(shí)現(xiàn)單頁面應(yīng)用(Single-Page Application,簡稱 SPA)中的前端路由功能。它允許通過定義不同的路由路徑和對(duì)應(yīng)的組件,來管理應(yīng)用程序中不同頁面或視圖的展示和切換。 Vue 路由使用了瀏覽器的 History API 或 hash(#)來實(shí)現(xiàn)路由導(dǎo)航。通

    2024年02月10日
    瀏覽(27)
  • vue3如何切換hash/history兩種路由模式

    本文介紹了在vue3中,如何使用history和hash兩種路由模式的方法 1、history模式 使用createWebHistory 2、hash模式 使用createWebHashHistory 綜上所述: history 對(duì)應(yīng) createWebHistory hash 對(duì)應(yīng) createWebHashHistory

    2024年02月13日
    瀏覽(27)
  • nginx 部署vue項(xiàng)目,路由模式為history時(shí),頁面刷新404問題

    nginx 部署vue項(xiàng)目,路由模式為history時(shí),頁面刷新404問題

    nginx部署vue項(xiàng)目,文件放在html下的dist文件夾中 nginx.conf 文件中,server 里配置文件的位置、請(qǐng)求跨域等信息 在啟動(dòng)項(xiàng)目后因?yàn)榕渲玫氖莚oot,首先是找不到html下面的sys-test文件夾,再經(jīng)過配置修改為alias配置后,刷新又會(huì)報(bào)404錯(cuò)誤,最終配置為如下,成功解決 因?yàn)榇虬渴鸷螅?/p>

    2023年04月08日
    瀏覽(26)
  • vue3.2項(xiàng)目中使用history路由模式刷新后頁面404

    開發(fā)過程中,路由可以正常訪問,打包后也可以正常訪問,但是一刷新頁面就會(huì)出現(xiàn)404錯(cuò)誤 方法一:修改為Hash路由模式 在router/index.ts文件中,將history路由模式修改為hash路由模式即可。 history路由模式: hash路由模式: 方法二、修改后臺(tái)偽靜態(tài) Nginx: Apache: 可以參考下這篇文

    2024年02月11日
    瀏覽(29)
  • vue3 history模式配置及nginx服務(wù)器配置

    vue3 history模式配置及nginx服務(wù)器配置

    vue的路由方式有hash模式和history模式,history模式路由看起來有好些,路由路徑里沒有#號(hào),而hash模式默認(rèn)是有#號(hào)的。 vue3開始默認(rèn)新建的項(xiàng)目都是history模式,不過history模式打包后想要使用正常訪問的話,需要后端服務(wù)器進(jìn)行配置才可以,否則可能會(huì)出現(xiàn)刷新后404的問題。一般

    2024年02月05日
    瀏覽(20)
  • Vue3 Vue-Router詳解 Vue3配置hash 和 history路由、Vue3封裝的路由hook函數(shù)(useRouter,useRoute)的使用 路由懶加載、路由分包處理、魔法注釋的使用

    ?html部分 js部分 ?html頁面使用路由傳來的參數(shù) ?獲取router跳轉(zhuǎn)id 獲取?路由跳轉(zhuǎn)錯(cuò)誤地址

    2024年02月11日
    瀏覽(23)
  • 前端路由hash模式以及history模式詳解

    前端路由hash模式以及history模式詳解

    在前后端分離的項(xiàng)目中,前端一般使用 SPA 單頁面應(yīng)用模式來開發(fā)項(xiàng)目。那么,什么是 SPA 呢? 單頁Web應(yīng)用(single page web application,SPA),就是只有一張Web頁面的應(yīng)用,是加載單個(gè)HTML 頁面并在用戶與應(yīng)用程序交互時(shí)動(dòng)態(tài)更新該頁面的Web應(yīng)用程序。 我的理解: 單頁面應(yīng)用就是

    2024年02月10日
    瀏覽(27)
  • 解密前端路由: hash模式vs.history模式

    解密前端路由: hash模式vs.history模式

    當(dāng)你構(gòu)建一個(gè)網(wǎng)站時(shí),可能會(huì)遇到如何處理 URL 的問題。在URL中,有兩種常見的模式: hash模式和history模式 。 1. Hash模式(哈希模式): 在 hash 模式中, URL 中的 hash (即#號(hào)后面的部分)用于標(biāo)記網(wǎng)頁的不同部分或狀態(tài)。當(dāng) URL 的 hash 發(fā)生改變時(shí),頁面不會(huì)重新加載,而是通

    2024年02月11日
    瀏覽(31)
  • 路由的hash和history模式的區(qū)別

    路由的hash和history模式的區(qū)別

    目錄 ? 路由模式概述 一. 路由的hash和history模式的區(qū)別 1. hash模式 2. history模式 3. 兩種模式對(duì)比 二. 如何獲取頁面的hash變化 單頁應(yīng)用是在移動(dòng)互聯(lián)時(shí)代誕生的,它的目標(biāo)是不刷新整體頁面,通過地址欄中的變化來決定內(nèi)容區(qū)域顯示什么內(nèi)容。 要達(dá)成這個(gè)目標(biāo),我們要用到前

    2024年02月14日
    瀏覽(23)
  • Vue history和hash模式

    ???????? ~~~~~~~~ ? ? ? ? ? ? ? ? 在Vue.js中,路由模式是用來管理應(yīng)用程序中不同頁面之間的導(dǎo)航的機(jī)制。Vue Router支持兩種常見的路由模式:history模式和hash模式。 History 模式: ???????? ~~~~~~~~ ? ? ? ? ? ? ? ? History模式使用瀏覽器的history.pushState API 來管理路由。它

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包