因为域名有限,所以想把vue项目部署在某个域名的二级路径上,例如:https://www.example.com/someapp/下
nginx的配置如下:
location ^~ /someapp/ {
index index.html;
alias /opt/someapp/;
try_files $uri $uri/ /someapp/index.html;
}
在/opt/下新建someapp目录,里面放的就是vue项目打包后的html文件
修改路由文件:router/index.js,主要是history那边需要修改
import {createRouter, createWebHistory, RouteRecordRaw} from "vue-router";
const routes: Array<RouteRecordRaw> = [
{
path: "/",
redirect: "home",
},
{
path: "/Test",
name: "Test",
component: () => import("../views/Test.vue"),
},
];
const router = createRouter({
history: createWebHistory('/someapp/'), // 设置为二级路径
routes,
});
export default router;
vite.config.js 内容如下(主要是base路径下修改)
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
base: '/someapp/', // 设置为二级路径
plugins: [vue()],
server: {
proxy: {
'/api': {
target: 'http://1.2.3.4:8080', // 实际请求地址
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
},
},
},
})
vue脚手架+nginx普通的配置,详见:https://blog.terrynow.com/2022/11/10/vue-build-deploy-to-secondary-path-error-fixed/
文章评论