当前位置: 首页 > news >正文

Vue 3 + Vite 项目配置访问地址到服务器某个文件夹的解决方案

前言

在开发 Vue 3 + Vite 项目时,我们经常需要将项目部署到服务器的某个特定文件夹下。例如,将项目部署到 /my-folder/ 目录下,而不是服务器的根目录。这时,我们需要对 Vite 和 Vue Router 进行一些配置,以确保项目能够正确访问资源和处理路由。

本文将详细介绍如何配置 Vite 的 base 选项以及 Vue Router 的路由模式,解决部署到服务器子文件夹时可能遇到的问题。

问题描述

在 Vue 3 + Vite 项目中,默认情况下,Vite 会将资源路径指向根目录(/)。如果我们将项目部署到服务器的子文件夹(例如 /my-folder/),可能会出现以下问题:

  1. 资源加载失败:JS、CSS 等静态资源路径不正确,导致页面无法正常加载。

  2. 路由失效:如果使用了 Vue Router 的 history 模式,路由可能无法正确匹配。

为了解决这些问题,我们需要对 Vite 和 Vue Router 进行配置。

解决方案

1. 配置 Vite 的 base 选项

Vite 提供了一个 base 配置项,用于指定项目的公共基础路径。我们可以通过修改 vite.config.js 文件来设置 base

示例:将 base 配置为 /my-folder/
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';export default defineConfig({plugins: [vue()],base: '/my-folder/' // 设置基础路径
});
示例:将 base 配置为 ./

如果你希望使用相对路径(例如直接打开 index.html 文件),可以将 base 配置为 ./

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';export default defineConfig({plugins: [vue()],base: './' // 使用相对路径
});

2. 配置 Vue Router

如果你在项目中使用了 Vue Router,还需要根据 base 的配置调整路由的设置。

情况 1:使用 hash 模式

hash 模式(URL 中有 #)不依赖于服务器的路径配置,因此即使 base 是 ./ 或 /my-folder/,路由也能正常工作。

import { createRouter, createWebHashHistory } from 'vue-router';const router = createRouter({history: createWebHashHistory(), // 使用 hash 模式routes: [// 路由配置]
});export default router;
情况 2:使用 history 模式

history 模式(URL 中没有 #)依赖于服务器的路径配置。如果 base 是 /my-folder/,则需要将 createWebHistory 的 base 参数设置为 /my-folder/

import { createRouter, createWebHistory } from 'vue-router';const router = createRouter({history: createWebHistory('/my-folder/'), // 与 Vite 的 base 保持一致routes: [// 路由配置]
});export default router;

如果 base 是 ./,则需要将 createWebHistory 的 base 参数设置为 ./

import { createRouter, createWebHistory } from 'vue-router';const router = createRouter({history: createWebHistory('./'), // 与 Vite 的 base 保持一致routes: [// 路由配置]
});export default router;

3. 部署到服务器

完成配置后,运行以下命令构建项目:

npm run build

构建后的文件会生成在 dist 目录下。将 dist 目录中的内容上传到服务器的目标文件夹(例如 /my-folder/)。

服务器配置示例(Nginx)

如果你使用 Nginx 作为服务器,可以按照以下配置:

server {listen 80;server_name your-domain.com;location /my-folder/ {alias /path/to/your/my-folder/;try_files $uri $uri/ /my-folder/index.html;}
}

4. 注意事项

  • 如果 base 配置为 ./,并且使用 history 模式,直接通过文件协议(file://)打开 index.html 可能会导致路由失效。此时建议使用 hash 模式。

  • 确保服务器的配置正确,尤其是使用 history 模式时,需要配置服务器支持 fallback 到 index.html

总结

通过以上配置,我们可以轻松地将 Vue 3 + Vite 项目部署到服务器的某个文件夹下。关键点如下:

  1. Vite 配置:通过 base 选项设置项目的基础路径。

  2. Vue Router 配置:根据 base 的配置调整路由模式(hash 或 history)。

  3. 服务器配置:确保服务器正确指向目标文件夹,并支持 fallback 到 index.html

希望本文能帮助你解决 Vue 3 + Vite 项目部署中的路径问题。如果有任何疑问,欢迎在评论区留言讨论!

 

 

 

 

 

 

 

 

相关文章:

Vue 3 + Vite 项目配置访问地址到服务器某个文件夹的解决方案

前言 在开发 Vue 3 Vite 项目时,我们经常需要将项目部署到服务器的某个特定文件夹下。例如,将项目部署到 /my-folder/ 目录下,而不是服务器的根目录。这时,我们需要对 Vite 和 Vue Router 进行一些配置,以确保项目能…...

JavaScript将:;隔开的字符串转换为json格式。使用正则表达式匹配键值对,并构建对象。多用于解析cssText为style Object对象

// 使用正则表达式匹配键值对,并构建对象 let string2Json(s)>{const r {};s.replace(/;/g, ;).replace(/\;/g, \n).replace(/:/g, :).replace(/\n/g, \n)//合并多个换行符.split(\n).forEach(item > {const [k, v] item.split(:);(k…...

MT-Metrics

MT-Metrics 是一类用于评估生成文本质量的指标,最初用于机器翻译任务,后来扩展到生成任务(如对话生成、文本摘要等)。它的核心思想是通过比较生成文本与参考文本之间的相似性(如词汇重叠、句法结构、语义相似性&#x…...

【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)

必须有为成功付出代价的决心,然后想办法付出这个代价。云边有个稻草人-CSDN博客 这节课挺抽象(苦笑),没事,我会帮你!干就完了! (目录在路上) 正文开始—— 引言 用链表…...

【Python爬虫(100)】从当下到未来:Python爬虫技术的进阶之路

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…...

Vue-Flow绘制流程图(Vue3+ElementPlus+TS)简单案例

本文是vue3Elementplusts框架编写的简单可拖拽绘制案例。 1.效果图&#xff1a; 2.Index.vue主代码&#xff1a; <script lang"ts" setup> import { ref, markRaw } from "vue"; import {VueFlow,useVueFlow,MarkerType,type Node,type Edge } fro…...

CNN:卷积网络中设计1×1夹在主要卷积核如3×3前后的作用

话不多说直接上图举例&#xff1a; 像在 ResNet 的 Bottleneck 结构 中&#xff0c;1x1 卷积 被放置在 3x3 卷积 的前后&#xff0c;这种设计有以下几个关键作用和优势&#xff1a; 1. 降低计算复杂度 问题&#xff1a;直接使用 3x3 卷积计算量较大&#xff0c;尤其是当输入和…...

esp8266 rtos sdk开发环境搭建

1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码&#xff0c;你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置&#xff0c;安装完成后&#xff0c;在命令提示符&#xff08;CMD&#xff09;或 PowerShell 中输入git --version&#…...

【深度学习】矩阵的核心问题解析

一、基础问题 1. 如何实现两个矩阵的乘法&#xff1f; 问题描述&#xff1a;给定两个矩阵 A A A和 B B B&#xff0c;编写代码实现矩阵乘法。 解法&#xff1a; 使用三重循环实现标准矩阵乘法。 或者使用 NumPy 的 dot 方法进行高效计算。 def matrix_multiply(A, B):m, n …...

DeepSeek模型昇腾部署优秀实践

2024年12月26日&#xff0c;DeepSeek-V3横空出世&#xff0c;以其卓越性能备受瞩目。该模型发布即支持昇腾&#xff0c;用户可在昇腾硬件和MindIE推理引擎上实现高效推理&#xff0c;但在实际操作中&#xff0c;部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾 De…...

从 Spring Boot 2 升级到 Spring Boot 3 的终极指南

一、升级前的核心准备 1. JDK 版本升级 Spring Boot 3 强制要求 Java 17 及以上版本。若当前项目使用 Java 8 或 11&#xff0c;需按以下步骤操作&#xff1a; 安装 JDK 17&#xff1a;从 Oracle 或 OpenJDK 官网下载&#xff0c;配置环境变量&#xff08;如 JAVA_HOME&…...

mysql架构查询执行流程(图解+描述)

目录 mysql架构查询执行流程 图解 描述 mysql架构查询执行流程 图解 描述 用户连接到数据库后&#xff0c;由连接器处理 连接器负责跟客户端建立连接、获取权限、维持和管理连接 客户端发送一条查询给服务器 服务器先检查查询缓存&#xff0c;如果命中缓存&#xff0c;则立…...

20分钟 Bash 上手指南

文章目录 bash 概念与学习目的第一个 bash 脚本bash 语法变量的使用位置参数管道符号&#xff08;过滤条件&#xff09;重定向符号条件测试命令条件语句case 条件分支Arrayfor 循环函数exit 关键字 bash 脚本记录历史命令查询文件分发内容 bash 概念与学习目的 bash&#xff0…...

事故02分析报告:慢查询+逻辑耦合导致订单无法生成

一、事故背景与现象 时间范围 2022年2月3日 18:11~18:43&#xff08;历时32分钟&#xff09; 受影响系统 系统名称角色影响范围dc3订单数据库主库订单生成、事务回滚dc4订单数据库从库数据同步、容灾切换 业务影响 核心业务&#xff1a;手机点餐、C扫B支付订单无法推送至…...

vant2 vue2 两个输入框联动验证遇到的问题

需求是两个输入框&#xff0c;一个输上限A&#xff0c;一个输下限B <van-fieldv-model"formData.upperLimit"name"upperLimit"type"number"label"上限"required:formatter"formatter"/><van-fieldv-model"for…...

硬件工程师入门教程

1.欧姆定律 测电压并联使用万用表测电流串联使用万用表&#xff0c;红入黑出 2.电阻的阻值识别 直插电阻 贴片电阻 3.电阻的功率 4.电阻的限流作用 限流电阻阻值的计算 单位换算关系 5.电阻的分流功能 6.电阻的分压功能 7.电容 电容简单来说是两块不连通的导体加上中间的绝…...

如何使用Docker搭建哪吒监控面板程序

哪吒监控(Nezha Monitoring)是一款自托管、轻量级的服务器和网站监控及运维工具,旨在为用户提供实时性能监控、故障告警及自动化运维能力。 文档地址:https://nezha.wiki/ 本章教程,使用Docker方式安装哪吒监控面板,在此之前,你需要提前安装好Docker. 我当前使用的操作系…...

python-leetcode 45.二叉树转换为链表

题目&#xff1a; 给定二叉树的根节点root,请将它展开为一个单链表&#xff1a; 展开后的单链表应该使用同样的TreeNode,其中right子指针指向链表中的下一个节点&#xff0c;而左子指针始终为空 展开后的单链表应该与二叉树先序遍历顺序相同 方法一&#xff1a;二叉树的前序…...

uni小程序wx.switchTab有时候跳转错误tab问题,解决办法

在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候&#xff0c;先发送了一个请求&#xff0c;然后执行跳转到tab菜单&#xff0c;但是这个时候&#xff0c;出错了........也是非常的奇怪&#xff0c;不加请求就没问题......但是业务逻辑就是要先执行某个请…...

【一起学Rust | 框架篇 | Tauri2.0框架】在Tauri应用中设置Http头(Headers)

文章目录 前言一、配置准备1. 检查版本2. 使用条件3. 支持的请求头&#xff08;并不是全部支持&#xff09; 二、使用步骤1. 如何配置header2. 框架集成1. 对于Vite系列、Nuxt、Next.js这种前端框架Vite系列框架Angular系列框架Nuxt系列框架Next.js系列框架 2. 对于Yew和Leptos…...

2026年全域聚合支付前景如何?一文揭秘!

在数字经济蓬勃发展的当下&#xff0c;全域聚合支付作为支付领域的重要创新模式&#xff0c;正深刻改变着我们的生活和商业运营方式。那么&#xff0c;2026年全域聚合支付的前景究竟怎样呢&#xff1f;让我们以财联支付为例&#xff0c;来深入探究一番。一、市场需求持续增长&a…...

Qwen3Guard-Gen-8B开箱即用:离线内容审核,保护你的AI应用免受风险

Qwen3Guard-Gen-8B开箱即用&#xff1a;离线内容审核&#xff0c;保护你的AI应用免受风险 1. 为什么需要离线内容审核&#xff1f; 在AI应用快速发展的今天&#xff0c;内容安全问题日益突出。无论是社交媒体、在线客服还是内容创作平台&#xff0c;都可能面临以下风险&#…...

应对极端姿态与表情:cv_resnet101_face-detection_cvpr22papermogface 鲁棒性极限测试

应对极端姿态与表情&#xff1a;cv_resnet101_face-detection_cvpr22papermogface 鲁棒性极限测试 今天咱们不聊常规操作&#xff0c;来点刺激的。人脸检测模型平时表现都挺好&#xff0c;证件照、生活照基本不在话下。但真到了“实战”环境&#xff0c;情况就复杂多了&#x…...

版本降级实战:在VirtualBox 6.0.24中成功启用嵌套虚拟化

1. 为什么要在旧版本中启用嵌套虚拟化&#xff1f; 最近在调试一个遗留项目时&#xff0c;遇到了一个棘手的问题&#xff1a;客户的生产环境使用的是VirtualBox 6.0.24版本&#xff0c;而我们需要在这个虚拟机里再运行一个虚拟机&#xff08;也就是嵌套虚拟化&#xff09;。这个…...

Ollama小白入门:从零开始使用Yi-Coder-1.5B,体验AI写代码

Ollama小白入门&#xff1a;从零开始使用Yi-Coder-1.5B&#xff0c;体验AI写代码 1. 为什么你需要Yi-Coder-1.5B 作为一个开发者&#xff0c;你是否经常遇到这些情况&#xff1a; 知道要实现什么功能&#xff0c;但写不出具体代码需要快速生成一些模板代码来节省时间学习新编…...

原生 JS 实现图片预览上传组件:多图上传 + 拖拽上传 + 裁剪预览 + 进度显示(附完整源码)

前言图片上传是前端开发中高频且核心的功能场景&#xff0c;如头像上传、素材管理、表单提交等。本文基于原生 HTMLCSSJavaScript 实现一套企业级图片预览上传组件&#xff0c;包含多图选择、拖拽上传、实时预览、图片裁剪、上传进度显示、文件大小 / 格式校验等功能&#xff0…...

从RNN到Mamba:我的序列建模项目踩坑实录,以及为什么最终选了它

从RNN到Mamba&#xff1a;我的序列建模项目踩坑实录&#xff0c;以及为什么最终选了它 去年接手一个工业传感器异常检测项目时&#xff0c;我没想到会在模型选型上耗费三个月。客户要求系统能实时处理长达10万步的振动信号&#xff0c;同时保持95%以上的召回率。这个看似简单的…...

为什么 Multi-Agent 比单 Agent 更难

为什么 Multi-Agent 比单 Agent 更难——从协作黑洞到协同效率巅峰的全维度拆解 (全文预计42万字) 一、 引言:从 ChatGPT 的“天花板对话”到 AgentVerse 的“分布式协作故障”——这才是 AI 应用落地的真实门槛 1.1 钩子(The Hook):单Agent vs Multi-Agent 的两个真实…...

OpenClaw安装 Skill 完整指南:从哪里找、怎么安装到怎么验证

OpenClaw安装 Skill 完整指南&#xff1a;从哪里找、怎么安装到怎么验证 关键词&#xff1a;OpenClaw、OpenClaw Skill、OpenClaw安装Skill、OpenClaw教程、AI智能体、EasyClaw 摘要&#xff1a;很多人开始接触 OpenClaw 后&#xff0c;很快就会遇到一个问题&#xff1a;Skil…...

Agent Harness:AI Agent 时代那个「缺失的操作系统层」

文章目录前言当"最强大脑"得了"失忆症"Agent Harness&#xff1a;给AI装上"操作系统"Harness都管哪些事儿&#xff1f;1. 工具编排&#xff08;Tool Orchestration&#xff09;2. 记忆与状态持久化&#xff08;Memory & State&#xff09;3.…...