二级目录部署
问题解决:
- PHP(thinkphp6)开发中,同一域名下部署vue项目放置在public目录下
- 新项目:同一域名下部署多个vue项目,
根目录vue项目不需要按下面的方式进行打包部署
我的域名:
访问域名:
server {
listen 80;
server_name www.mydomain.com;
access_log /var/log/nginx/mydomain.access.log;
error_log /var/log/nginx/mydomain.error.log;
location ^~/ {
alias /usr/local/nginx/html/public/;
try_files $uri $uri/ /index.html;
index index.html;
}
location ^~/subject {
alias /usr/local/nginx/html/subject/;
try_files $uri $uri/ /subject/index.html;
index index.html;
}
}
前端在打包静态文件的时候需要进行以下修改:
1、在vue.config.js 配置文件中,publicPath 和 outputDir 都改为 '/子目录名/'。
参数设置参考如下:
publicPath : process.env.NODE_ENV === "production" ? '/subject/' : '/'
2、入口文件 index.html 的head 标签内加入
新增 <meta base="/子目录名/">
vim public/index.html
新增 <meta base="/hmanage/">
3、vue-router 路由文件的配置,填写二级目录
新增 base: '/子目录名/',
vim src/router/index.js
新增 base:'/hmanage/',
new Router ({
base: '/subject/',
mode: 'history', //url不带#,
其他参数
})
4、nginx 配置以及前端资源根目录
location ^~/subject {
alias /usr/local/nginx/html/subject/;
try_files $uri $uri/ /subject/index.html;
index index.html;
}
此方法适用于多项目二级目录部署,已在项目运行。
发表评论 取消回复