vue項(xiàng)目頁(yè)面刷新后報(bào)404的解決方法
這種情況通常是由于 前端路由? 和 瀏覽器直接訪問? 的差異導(dǎo)致的。主要有以下幾個(gè)原因和解決方案:
主要原因
1. 路由模式問題(History vs Hash)
// 如果使用 history 模式,需要服務(wù)器配置
const router = new VueRouter({
mode: 'history', // 需要服務(wù)器支持
// mode: 'hash', // 直接訪問不會(huì)有問題,但URL有#號(hào)
routes: [...]
})2. 服務(wù)器配置問題
當(dāng)直接輸入U(xiǎn)RL時(shí),瀏覽器會(huì)向服務(wù)器請(qǐng)求該路徑,如果服務(wù)器沒有正確配置,會(huì)返回404。
解決方案
方案1:配置服務(wù)器重定向
Nginx 配置:
location / {
try_files $uri $uri/ /index.html;
}Apache 配置(.htaccess):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>方案2:使用 Hash 模式
const router = new VueRouter({
mode: 'hash', // URL會(huì)包含 #/path
routes: [...]
})方案3:開發(fā)環(huán)境配置(webpack-dev-server)
在 vue.config.js中:
module.exports = {
devServer: {
historyApiFallback: true,
// 或者更詳細(xì)的配置
historyApiFallback: {
rewrites: [
{ from: /.*/, to: '/index.html' }
]
}
}
}檢查步驟
確認(rèn)當(dāng)前路由模式:
console.log(router.mode) // 查看是 history 還是 hash
檢查路由配置:
// 確保路由正確定義
const routes = [
{
path: '/your-path', // 你訪問的路徑
component: YourComponent,
name: 'YourRoute'
}
]驗(yàn)證路由跳轉(zhuǎn):
<template>
<!-- 這兩種方式應(yīng)該都能工作 -->
<router-link to="/your-path">跳轉(zhuǎn)</router-link>
<button @click="$router.push('/your-path')">編程式導(dǎo)航</button>
</template>實(shí)際示例
假設(shè)你的路由配置:
// router.js
const routes = [
{
path: '/user/:id',
component: UserProfile,
name: 'user'
}
]直接訪問問題:
- ? 直接輸入:
http://yoursite.com/user/123(可能404) - ? 通過(guò)
<router-link to="/user/123">訪問(正常)
解決方案:
// vue.config.js
module.exports = {
devServer: {
historyApiFallback: true
},
// 生產(chǎn)環(huán)境構(gòu)建路徑
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/'
}總結(jié)
- router-link 能訪問:因?yàn)檫@是前端路由跳轉(zhuǎn),不請(qǐng)求服務(wù)器
- 直接輸入U(xiǎn)RL不能訪問:瀏覽器向服務(wù)器請(qǐng)求該路徑,服務(wù)器沒有對(duì)應(yīng)資源
- 解決方案:配置服務(wù)器將所有路由指向 index.html,讓 Vue Router 處理路由
你用的是哪種服務(wù)器環(huán)境?我可以提供更具體的配置方案。
到此這篇關(guān)于vue項(xiàng)目頁(yè)面刷新后報(bào)404的解決方法的文章就介紹到這了,更多相關(guān)vue頁(yè)面刷新404內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue頁(yè)面切換空白與刷新404問題的深度解析
- vue3動(dòng)態(tài)路由解決刷新頁(yè)面空白或跳轉(zhuǎn)404問題
- Vue history模式刷新頁(yè)面404問題及解決
- vue項(xiàng)目頁(yè)面刷新404錯(cuò)誤的解決辦法
- vue動(dòng)態(tài)路由刷新失效以及404頁(yè)面處理辦法
- vue項(xiàng)目history模式刷新404問題解決辦法
- vue?使用addRoutes動(dòng)態(tài)添加路由及刷新頁(yè)面跳轉(zhuǎn)404路由的問題解決方案
- vue-router4動(dòng)態(tài)路由刷新404/白屏的解決
相關(guān)文章
教你用vue實(shí)現(xiàn)一個(gè)有趣的圍繞圓弧動(dòng)畫效果
最近做的兩個(gè)項(xiàng)目都是關(guān)于vue的,做完整理一下,這篇文章主要給大家介紹了關(guān)于如何用vue實(shí)現(xiàn)一個(gè)有趣的圍繞圓弧動(dòng)畫效果的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
vue項(xiàng)目使用modbus實(shí)現(xiàn)串口通訊的示例代碼
本文主要介紹了vue項(xiàng)目使用modbus實(shí)現(xiàn)串口通訊的示例代碼,可以實(shí)現(xiàn)與Modbus設(shè)備的數(shù)據(jù)交互,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
vue 實(shí)現(xiàn)Web端的定位功能 獲取經(jīng)緯度
這篇文章主要介紹了vue 實(shí)現(xiàn)Web端的定位功能獲取經(jīng)緯度,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
vue-cli3 打包優(yōu)化之 splitchunks詳解
這篇文章主要介紹了vue-cli3 打包優(yōu)化之 splitchunks的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
淺談vue在html中出現(xiàn){{}}的原因及解決方式
這篇文章主要介紹了淺談vue在html中出現(xiàn){{}}的原因及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問題及解決
這篇文章主要介紹了vue項(xiàng)目element-ui級(jí)聯(lián)選擇器el-cascader回顯的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
vue中如何實(shí)現(xiàn)pdf文件預(yù)覽的方法
這篇文章主要介紹了vue中如何實(shí)現(xiàn)pdf文件預(yù)覽的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
vue之input輸入框防抖debounce函數(shù)的使用方式
這篇文章主要介紹了vue之input輸入框防抖debounce函數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11

