问题:
默认端口就只有一个,有多个项目需要部署到同一端口下。
解决方法:
根据根路径不同分别代理访问不同项目
第一步:
在vue.config.js文件中修改publicpath路径为/project/
......
module.exports = {
// 部署生产环境和开发环境下的url。
// 默认情况下,vue cli 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseurl 为 /admin/。
publicpath: "/project/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseurl的生产环境路径一致)(默认dist)
outputdir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
assetsdir: 'static',
......
}
第二步:
在router文件夹中index.js文件中修改base为 ‘/project/’
... ...
const createrouter = () => new router({
base: '/project/', // 调整这里,路径跟publicpath保持一致即可
mode: 'history', // 去掉url中的#
scrollbehavior: () => ({ y: 0 }),
routes: routers
})
打包
调整完毕后,直接执行build打包命令,可以发现index.html引入js路径增加了/project
... ... <script type="text/javascript" src="/project/static/js/chunk-vendors.js"></script> <script type="text/javascript" src="/project/static/js/app.js"></script> ... ...
调整nginx的server配置
server {
listen 9001;
server_name localhost;
# 这个是第一个vue项目 页面访问地址 http://ip:9001
location / {
# root f:/parant/dist;
root /home/project/dist/;
index index.html;
try_files $uri $uri/ /index.html;
}
# 这个是第二个vue项目 页面访问地址 http://ip:9001/project
location /project {
# alias f:/subparant/dist;
alias /home/other_project/dist/;
index index.html;
try_files $uri $uri/ /project/index.html; #解决刷新404
}
}
注意:如果页面中有二级路由的话,配置文件中一定不能用root,要用alias.
到此这篇关于nginx配置同一域名同一端口下部署多个vue项目的文章就介绍到这了,更多相关nginx部署多vue项目内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论