发布:2023/10/17 22:43:25作者:管理员 来源:本站 浏览次数:546
文章目录
需求描述
具体配置
参考链接
需求描述
有时候需要在同一域名或同一端口下,部署多个前端项目,这时候只有一个根目录就不能满足需求了,需要配置二级目录。除了在Nginx配置文件中配置二级目录外,另外还需要在Vue项目中添加一些配置。
具体配置
.env.production
# VITE_BASE_URL=/ # 默认配置
VITE_BASE_URL=/gis/ # 二级目录部署时用到
routes.ts
export const router = createRouter({
// history: createWebHistory(), // 默认配置
history: createWebHistory("/gis/"), // 二级目录部署时用到,https://www.dianjilingqu.com/365908.html
routes
})
进行上述修改后,执行npm run build会发现生成的dist文件夹下第一级目录是上面配的路径,也就是gis。
nginx.conf
location /gis {
alias D:/Code/smartcity-web/dist/gis/;
try_files $uri $uri/ /hmanage/index.html;
index index.html index.htm;
}
参考链接
Vue 3使用二级目录部署(Nginx)
最近通过Vue3写了个Web展示项目,部署的时候不希望再弄个新域名或者二级域名,想到的使用二级目录。
最初按照正常的Vue发布来部署,Nginx配置如下
location ^~/web{
alias /data/web;
try_files $uri $uri/ /web/index.html;
index index.html;
}
通过"域名/web"访问,返回500。
后来再网上查询,大部分说需要
配置vue.config.js中的publicPath
配置route中的mode和base;
通过尝试,发现Vue3中,RouterOptions设置mode已经更新为createWebHistory,base已经变为createWebHistory的参数;
最终成功方案:
Nginx 配置不变
Vue项目中vue.config.js 配置如下:
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/web/' : '/'
}
Vue项目中route关键配置如下:
createRouter({
history: createWebHistory('/web/'),
routes: [ ***路由列表***]
})
通过域名+/web 访问,可以正常显示。以上亲测有效,如有其他问题欢迎在评论去交流。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4