vue前端项目部署后想挂在域名的某个目录下

Rainbond版本: 5.1.11
操作系统:centos7.4
内核版本:5.9.12

vue前端项目部署后,用泛域名可以访问,现在想用自定义域名的目录/erp访问,如何配置呢?
我在“编辑Http访问策略”添加了location,访问有些文件404错误
image


抄送: @dazuimao1990

我尝试过在本机部署,前端修改了vue.config.js和index.js增加了/erp/, NGINX手动增加了erp目录,nginx.conf修改了location /erp和
location @router {
rewrite ^.*$ /index.html last;
}
是可以正常访问的。
用这套方法部署到rainbond,域名解析到网关节点内网ip,就会报错很多文件404了

试了下好像是打包的问题,新的打包不生效,为什么呢

图中的配置,会把 /erp/ 路径匹配给当前绑定端口的 / 路径下,你看看匹配的对不对。404 一般都是路径匹配的不对

1.打包好像只支持dev、test、prod?不支持自定义比如stage、stage02?
2.需要手动到容器里面新建erp目录,然后把项目移到erp目录下,这一步操作可以用Procfile来做吧?我看自动生成的Procfile调用了boot.sh,我自定义了Procfile还会自动生成boot.sh么?还是全部启动命令都要自己写?
我增加了Procfile,没有生效,内容如下
web: mkdir erp && mv /app/www/* erp/ && mv erp /app/www/ && sh boot.sh

5.1.11 版本 NodejsStatic 源码构建命令默认是 npm run build 。想要自定义的话,建议升级到5.2版本以后。至于代码打包目录的自定义,可以试下修改 nodestatic.json 里的内容,这个文件是用来定义打包后的静态文件位于哪里的。

nodestatic.json是指定打包后的文件放在什么目录,默认是dist目录。
我的意思是把打包后的文件放在容器里面的目录,默认是/app/www,我想要放在/app/www/erp下。换个说法就是我想在默认的/app/www目录下新建个文件夹erp,把打包好的文件放到这个erp目录下。

NodejsStatic 源码构建过程比较特殊,你需要的步骤不可以通过 Procfile 实现。目前的默认逻辑,是把 dist 目录中生成的静态资源放到 Nginx 的 /app/www 下。你是否可以通过指定 nginx 的配置文件的方式来解决这个问题么?或者在打包过程中,就生成你要的路径。
如果都不行,可能要修改builder 代码。目前对 5.1 版本不再支持了。