vue3 history模式的nginx以及环境变量配置

环境变量配置

.env.prod

JavaScript 复制代码
BASE_URL='/user'

.env.sit

JavaScript 复制代码
BASE_URL='/user'

代码里配置

vue.config.js

JavaScript 复制代码
const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig({
  transpileDependencies: true,
  publicPath: process.env.BASE_URL,
  })

router/index.js

JavaScript 复制代码
import { createRouter, createWebHistory } from 'vue-router';
import routes from './router.config';
const router = createRouter({
 history: createWebHistory(process.env.BASE_URL),
 routes,
});
export default router;

nginx上配置

比如服务器上项目统一放在app目录下

打开app文件夹,一台服务器可能部署多个项目,就需要给每个项目单独命名一个文件夹,每个项目又有前后端代码。

到这里,如果我们使用的是hash路由,项目已经可以进行访问了,只是有#号,比较丑,路径为: XXXX.XXX.XX/user/#/inde...

想要去掉这个就要使用history模式,并且在nginx中进行配置,如果不配置也能访问,但是刷新后404,nginx的配置如下:

JavaScript 复制代码
   location /user{
      alias   /app/user/front/dist;
      try_files $uri $uri/ /user/index.html;
                autoindex on;
    }

访问的方式变为: XXXX.XXX.XX/user/index (无论怎么刷新都不会有错误,这里最好还要在nginx统一配置错误页面4xx、5XX或者在前端项目里进行路由匹配,不然访问的页面找不到或者崩溃 提示不友好,用户看不明白)。

end

相关推荐
时光足迹1 分钟前
Tiptap 简单编辑器模版
前端·javascript·react.js
JSLove15 分钟前
nginx入门
前端·nginx
时光足迹16 分钟前
ThreeJS之GUI控制器
前端·javascript·three.js
时光足迹17 分钟前
Tiptap编辑器
前端·javascript·react.js
时光足迹20 分钟前
电子书阅读器之笔记高亮(跨段处理)
前端·javascript·react.js
Dabei23 分钟前
Android 副屏(Virtual Display)创建与悬浮窗画中画显示实战
前端·架构
RONIN27 分钟前
mock模拟后端,生成伪数据接口
vue.js
Hello-Mr.Wang42 分钟前
【保姆级教程】MasterGo MCP + Cursor 一键实现 UI 设计稿还原
前端·javascript·vue.js·ai编程
Dabei44 分钟前
Android 无障碍服务实现美团/微信自动化:客户端开发实践
前端·设计模式