vue3+vite使用History路由模式打包部署项目注意事项

Vue3.0路由将哈希(hash)更改为历史(history)模式 阅读详情
AI摘要

本文介绍Vue3结合Vite使用History路由模式时的配置方法及注意事项,包括VueRouter配置、vite打包配置与Nginx服务器配置,确保项目正确部署。

一、Vue Router 的两种路由模式
 

哈希模式(Hash Mode)

        默认模式,URL 结构包含哈希符号 #,例如:http://example.com/#/home。利用 window.location.hash 来跟踪路由变化,浏览器会自动处理哈希的变化而不触发页面重载。
因为哈希值只影响浏览器的历史记录而不发送到服务器,所以无需后端配合即可实现前端路由。
SEO 性能较差,因为搜索引擎通常不会抓取哈希值后面的路径内容。


历史模式(History Mode)

        利用了 HTML5 的 History API,如 window.history.pushState() 和 window.onpopstate 事件。
在此模式下,URL 不包含哈希,呈现常规的路径结构,例如:http://example.com/home。
为了实现前进、后退按钮的正常工作以及防止直接访问某个路由导致404错误,需要在服务器端进行适当的配置,将所有的请求都指向应用程序的入口文件,以便 Vue Router 能够接管并解析正确的路由。
历史模式提高了用户体验,URL 易于阅读,也更利于 SEO。

二、History 路由模式打包部署项目

        在Vue 3.中使用Vue Router的history模式进行项目打包部署时,需要确保打包配置和服务器正确配置来处理路由。否则部署到Nginx会出现访问404、空白等。在项目打包配置及Nginx配置有些要注意的地方。以项目名demo为例。

1、配置Vue Router为history模式,在src/router/index.js中配置
import { createRouter, createWebHistory } from 'vue-router'
 

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes:[
     // 定义路由
  ]
})
 
export default router

备注:createWebHistory:history模式,createWebHashHistory:hash模式

2、配置 vite.config.js
import {
	fileURLToPath,
	URL
} from 'node:url'

import {
	defineConfig
} from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig(() => {
	return {
		plugins: [
			vue()
		],
		// 静态站点根路径配置;base:'/demo/';demo是项目名,解决Nginx部署时,访问缺少项目前缀的问题
		base: process.env.NODE_ENV === 'production' ? '/demo/' : '/',// vue-router中配置,组件匹配
		// publicPath: process.env.NODE_ENV === 'production' ? '/demo/' : '/',// vue.config.js文件中配置,打包后外部资源的获取
		build: {
			// 设置打包文件夹的名称
			outDir: 'demo'
		},
		resolve: {
			alias: {
				'@': fileURLToPath(new URL('./src', import.meta.url))
			}
		},
	};
});
3、配置Nginx,在conf/nginx.conf中配置
location /demo/ {
    alias  /path/html/demo/;
    index  index.html index.htm;
    try_files $uri $uri/ /demo/index.html;
}

备注:alias  /path/html/demo/; 中的 path 换成Nginx对应的部署路径

vite hash路由模式项目打包上线访问 json 文件方法 阅读详情

相关推荐

【Vue3+Vite】路由机制router 快速学习 第四期

路由就是根据不同的 URL 地址展示不同的内容或页面。页面切换。

Orion 2438

vite vue3 下配置 history 模式路由+解决chrome94解决私有网络请求

vite 下,打包后采用history模式详解

pakchoily的博客 1万+

VTJ.PRO项目模板:现代Web开发的标准化提效利器

在现代Web开发中,项目脚手架和标准化工具链是提升团队协作效率和项目质量的关键。其核心原理在于通过预设的最佳实践、统一的技术栈和工程化配置,将项目初始化、构建、代码规范等重复性工作自动化,从而让开发者能专注于业务逻辑开发。这种模式的技术价值在于大幅降低项目启动成本、统一团队技术规范、减少环境差异导致的协作问题。其典型应用场景包括快速搭建企业级中后台系统、开发营销活动H5页面以及构建跨平台应用。本文以VTJ.PRO提供的项目模板为例,深入解析了其如何集成Vite、TypeScript、Pinia等现代前端工具

weixin_34111790的博客 536

vue3 history模式配置及nginx服务器配置

vue3开始默认新建的项目都是history模式,不过history模式打包后想要使用正常访问的话,需要后端服务器进行配置才可以,否则可能会出现刷新后404的问题。这样,我们通过访问https://abc.xxx.com/calculator/或者https://abc.xxx.com/calculator/wap/这个路径就可以正常使用了,刷新也不会出现404问题。以上例子中vite.config.js的配置,打包后访问的路径为https://xxx.com/calculator/。

持续学习中 1万+

SpringBoot+Vue3+DeepSeek实战:一小时搭建AI健身管理系统

在当今的Web应用开发中,前后端分离架构已成为主流实践,它通过将用户界面与业务逻辑解耦,提升了开发效率和系统可维护性。其核心原理在于前端负责视图渲染与用户交互,后端提供RESTful API进行数据处理,二者通过HTTP协议通信。这种架构的技术价值在于支持团队并行开发、便于技术栈选型与独立部署。随着人工智能技术的普及,将大语言模型API集成到传统业务系统中,成为提升应用智能化和用户体验的重要方向,典型的应用场景包括智能客服、内容生成与个性化推荐。本文聚焦于健身管理领域,结合SpringBoot后端框架、Vu

weixin_34168880的博客 595

【Vue知识点总结】Vue路由模块

路由(Routing)在Web开发中指的是根据不同的URL路径显示不同内容或页面的机制。Vue 中的路由属于前端路由。它的原理是:当 URL 变化时,Vue Router 匹配到对应的规则,然后把对应的组件塞到 <router-view> 这个占位符中显示出来。Vue 官方推荐的路由管理器是 Vue Router。Vue 2 对应 Vue Router 3.x,Vue 3 对应 Vue Router 4.x。

这是个栗子的博客 131

Vue3:路由的两种模式history模式和hash模式

Vue

Brave_heart4pzj的博客 2607

别再只跑memtester了!嵌入式Linux内存压力测试,这5个参数和场景你试过吗?

本文深入探讨了嵌入式Linux内存压力测试的高级技巧,重点解析了memtester工具的5个关键参数和实战场景。通过物理地址测试、迭代控制、内存分配策略等调优方法,帮助开发者有效检测内存稳定性问题,适用于长期运行设备、特定故障重现等复杂场景,提升嵌入式系统可靠性。

weixin_30838873的博客 425

Electron+Vue3项目避坑指南:history模式打包后首页空白的3种修复方案

本文针对Electron+Vue3项目在history模式下打包后出现首页空白的问题,提供了三种修复方案。从最快速的Hash模式切换,到平衡美观与兼容性的History模式配置修正,再到一劳永逸的自定义协议注册,详细分析了每种方案的原理、实施步骤、优缺点及适用场景,并附有决策树和深度调试技巧,帮助开发者根据项目需求做出最佳选择。

weixin_29011395的博客 257

使用 Cynthion 与 Packetry 进行 USB 抓包与协议分析

Cynthion 是 Great Scott Gadgets 推出的USB 流量分析与注入设备。它具备以下特点:通过 FPGA 实现高速 USB 流量捕获;能够同时作为 USB Host 和 Device,进行调试和测试;支持输出 pcap 文件,可直接用 Wireshark 分析;提供 Python API,方便与上层软件联动。简单来说,Cynthion 是一个USB 协议分析仪 + 注入工具。硬件层捕获:实时拦截 USB 总线上的数据包;软件层解析。

YIMUleizi的博客 1264

PHP版本对接支付宝支付接口 电脑网站 详细介绍 沙箱环境 超简单易懂

PHP版本对接支付宝支付接口 其实理顺了思路后,按照我接下来的步骤来,真的超级简单啊,为啥有那么多的朋友们折腾了那么久呢,嘿嘿,跟我走吧~ 我是昨天晚上洗完澡之后,大概八九点,才开始正式开工尝试去这一工程的,我去支付宝的蚂蚁金服开放平台里把各个知识点和文档大概都看了一遍,大致弄明白了要怎么操作了,建议大家看看电脑网站开发文档,忙到了夜里十二点左右,成功地用支付宝给的Demo完成了付款操...

爱玲姐姐的博客 1万+

Vite多入口配置实战:Vue3项目架构与路由管理指南

在现代前端工程化实践中,构建工具的多入口配置是管理复杂项目架构的关键技术。其核心原理是通过配置构建工具的入口选项,将多个独立的HTML页面作为独立入口进行打包,实现资源的物理隔离和独立部署。这项技术的核心价值在于能够将不同功能模块解耦,支持混合应用架构(MPA与SPA并存),显著提升大型项目的可维护性和部署灵活性。在Vue3技术栈中,结合Vite构建工具,开发者可以高效实现多入口配置,并为每个入口独立配置Vue Router路由系统。本文聚焦Vite多入口配置的工程实践,详细解析如何通过rollupOpti

weixin_33670713的博客 534

手把手教你用Python实现最简单的语义通信(Sem Comm)Demo

本文通过Python和PyTorch,手把手教你构建一个基于深度学习的语义通信(Semantic Communication)Demo。该Demo使用自编码器架构,从MNIST图像中提取低维语义特征进行传输与重建,实现了从“传输比特”到“传递含义”的跨越,并探讨了其效率优势与鲁棒性。

weixin_29080843的博客 247

Vue3项目Nginx部署刷新404问题解决方法

Vue项目部署后刷新404,通常通过正确配置Nginx,让无法找到资源的请求回退到index.html即可解决。关键是根据你的项目是部署在根目录还是子目录,选择合适的Nginx配置写法,并确保Vue项目的路由模式和公共路径设置与之匹配。

BillKu的博客 915

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1607

ESP32 WIFI 智能巡线小车设计与实现(四足 / 四轮通用)

本文设计的 ESP32 WIFI 智能巡线小车,硬件模块化、软件轻量化,兼容四足与四轮两种结构,实现了自动巡线与 WIFI 远程控制双功能。系统成本低、易上手,适合嵌入式初学者学习 WIFI 通信、传感器应用、运动控制等核心知识点,也可在此基础上扩展蓝牙控制、避障、视觉识别等功能。

weixin_42300449的博客 152

vue+vite项目,Capacitor打包APK

本文详细介绍了基于Vite 5 + Capacitor 6构建Android应用的全流程,涵盖环境配置(Node.js ≥18、JDK 17、Android Studio)、项目初始化、打包参数设置、资源同步及APK生成。重点说明了capacitor.config.json中server配置以支持HTTP明文请求,强调包名(appId)不可随意修改,并提供调试与发布版本的构建方法。同时针对常见问题如SDK访问失败、Gradle路径错误、Java版本不匹配等给出解决方案,确保开发流程顺畅高效。

weixin_42214237的博客 435

Windows 11 安装 JDK 21:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统中安装 JDK 21 的完整流程,包括从 Oracle 官网下载压缩包、解压至自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章推荐使用 ZIP 压缩包而非安装程序,以实现绿色便携、多版本共存等优势,并通过一个包含 Java 21 新特性的示例程序进行功能验证,适合开发者快速上手。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2523

Vue项目部署实战:从本地开发到宝塔面板线上部署全流程详解

在现代Web开发中,前端项目部署是将本地代码转化为线上可访问服务的关键环节。其核心原理在于将构建后的静态资源(HTML、CSS、JavaScript)通过Web服务器(如Nginx)对外提供服务。这一过程的技术价值在于实现开发与生产环境的一致性,确保应用稳定、高效地运行。在实际应用场景中,部署涉及环境配置、文件传输、服务器设置等多个步骤,尤其对于Vue.js等单页应用(SPA),还需处理路由和资源加载等特定问题。本文聚焦于**Vue项目**的**宝塔面板**部署,详细讲解如何利用这一图形化工具简化Nginx

weixin_34234829的博客 397

uniapp - 强力解决 swiper 轮播图内嵌套视频导致滑动不流畅卡顿问题,轮播滑块视图容器里既有图片也有视频video组件共同存在出现滑动切换特别卡,轮播组件包裹视频播放器加载慢及层级过高解决

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,swiper,轮播图,轮播图嵌套视频,卡顿,加载慢,左右滑动不流畅,很卡,滑动过快就会卡住,uniapp使用swiper组件里嵌套视频与图片如何解决卡顿问题,详细解决教程,swiper里有视频video,播放器,视频+图片轮播,层级过高及卡顿问题,没等看完视频就自动切换了,报错,无法加载播放,uniapp的App安卓苹果端,video老是加载,APP端video组件播放视频卡顿,抖音,快手,上下滑动视

🏆 前端领域优质创作者 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Vue3 项目打包 & 上线部署完整教程

本文详细介绍了前端项目从开发到上线的完整部署流程。首先通过npm run build命令生成dist静态文件夹作为生产环境代码,然后可使用npx serve dist进行本地预览测试。部署方式包括Gitee/GitHub Pages等免费静态托管,以及OSS、COS对象存储和Nginx服务器部署。特别提醒:history路由模式需配置Nginx重写规则,静态资源路径错误需设置vite base路径。dist文件夹可直接上传至任意静态服务器完成部署,实现从开发到上线的完整闭环。

分享知识,拥抱变化 361

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

vue-pure-admin:三步本地跑起来的免费 Vue3 后台管理系统模板

vue-pure-admin 是一款开源免费的 Vue3 后台管理系统(中后台)模板,全部采用 ESM(ES Modules,现代 JS 模块规范)编写,整合了 Vue 3、Vite、Element Plus、TypeScript、Pinia、Tailwind CSS 等主流技术。克隆下来装完依赖即可启动,内置登录、权限、表格、表单等常见页面的完整演示,既适合新手研究后台系统的结构,也适合作为实际

gitblog_01026的博客 935

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Vue3项目部署到GitHub Pages完整指南:从手动到自动化

静态网站托管是前端工程化落地的重要一环,GitHub Pages作为免费且与Git深度集成的托管服务,非常适合承载Vue3构建出的纯静态资源。其核心原理是将仓库中的HTML、CSS、JS文件直接分发到公开域名,无需自建服务器或配置Nginx。对于基于Vite的Vue3项目,构建产物天然适配这种部署模式,是个人博客、项目演示页及组件库文档的理想选择。在实际部署中,Vite的base路径配置和vue-router的路由模式是最容易踩坑的两个环节:base设置不当会导致资源404白屏,history路由在静态服务

weixin_31306591的博客 219

Spring Boot + Vue3 全栈博客后台管理系统实战教程

前后端分离架构是现代Web应用开发的主流模式,其核心原理是将用户界面与业务逻辑解耦,通过RESTful API进行数据交互。这种架构模式的技术价值在于提升了开发效率、实现了技术栈的灵活选型,并便于团队协作与独立部署。在众多应用场景中,内容管理系统(CMS)和个人博客系统是典型的实践案例。本教程聚焦于使用Spring Boot和Vue3这两个热门框架,手把手教你构建一个功能完备的博客后台管理系统。项目将详细演示如何整合MyBatis-Plus进行高效的数据库操作,并利用Element Plus快速搭建管理界面

weixin_34198881的博客 539

SPA部署Nginx刷新404问题:从原理到实战的完整解决方案

单页应用(SPA)是现代前端开发的主流架构模式,它通过客户端路由实现页面无刷新切换,提升了用户体验。其核心原理是利用前端路由库(如Vue Router、React Router)在浏览器端管理URL与组件映射,而服务器仅提供静态资源。然而,当SPA部署到Nginx等静态服务器时,刷新非根路径页面常出现404错误,这是因为服务器试图寻找对应物理文件而非返回入口文件。解决这一问题的技术关键在于配置Nginx的try_files指令,将未匹配的请求回退到index.html,让前端路由接管。这一方案不仅解决了部署

weixin_34239169的博客 535

若依项目部署后白屏转圈?从请求链路到Nginx配置的排查指南

前后端分离架构将前端静态资源与后端服务解耦,已成为现代Web应用的主流形态。其核心原理是前端通过HTTP请求调用后端API,由反向代理(如Nginx)统一转发流量。这种架构在开发环境运行流畅,但生产部署时若代理配置不当,极易引发前端页面白屏、请求持续pending等问题。尤其在企业级快速开发平台若依(RuoYi)项目中,部署后页面加载动画一直转圈是常见故障。排查思路应遵循请求链路:从前端环境变量、API地址拼接,到Nginx的try_files和proxy_pass规则,再到后端服务及微服务网关。掌握这一套

weixin_34037173的博客 148
上一篇: VUE页面按enter键刷新页面处理办法
下一篇: ‌Windows环境Node.js的npm缓存文件npm-cache迁移
以夢爲馬☆
博客等级 码龄15年 286粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值