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

相关推荐
LlNingyu1 分钟前
文艺复兴,什么是CSRF,常见形式(二)--SameSite属性
前端·网络·安全·web安全·csrf
紫_龙4 分钟前
最新版vue3+TypeScript开发入门到实战教程之组件通信之一
前端·vue.js·typescript
yivifu9 分钟前
接近完美的HTML文本双行合一排版
前端·javascript·html·双行合一
fxshy10 分钟前
前端直连模型 vs 完整 MCP:大模型驱动地图的原理与实践(技术栈Vue + Cesium + Node.js + WebSocket + MCP)
前端·vue.js·node.js·cesium·mcp
鹏程十八少12 分钟前
10. Android Shadow是如何实现像tinker热修复动态修复so(源码解析)
android·前端·面试
destinying15 分钟前
性能优化之项目实战:从构建到部署的完整优化方案
前端·javascript·vue.js
我命由我1234519 分钟前
React - React Redux 数据共享、Redux DevTools、React Redux 最终优化
前端·javascript·react.js·前端框架·ecmascript·html5·js
英俊潇洒美少年19 分钟前
数据驱动视图 vue和react对比
javascript·vue.js·react.js
Jinuss20 分钟前
源码分析之React中的createContext/useContext详解
前端·javascript·react.js
代码搬运媛22 分钟前
幽灵依赖终结者:pnpm 的 node_modules 结构隔离深度解析
前端