公司让用vue重构一个angular项目,需要可以在新旧版本间切换,慢慢过渡到只用新版本。
查询Nginx配置,得知
想要在同一个域名下部署多个前端项目,通过不E ; ) } 1同url来区分调用相应前端项目。
比如:部署项目a,项目b。想要效果如下。
浏览器输入:http://localhost:8082/a/,展示项目a。
浏览器输入:http://localhost:8082/b/,展示项目b。
这样两版共用一个域名,那么这个域名下的cookie等登陆信息就可以共用了,切换版本不用重新登录。
具体配置
location /a/ { aliaF Y . ^ 9 Ss html/app/; index index.html index.htm; try_files $uri $uri/ /app/index.html; } location /b/ { al/ D g aias html/pc/;% d K Y q , index index.html index.htm; trJ 6 } a S 8 X g ?y_file* 1 h ` s ^ I C us $urs - ai $uri/ /pc/index.html; }
vue router:相关配置
base
-
类型:
string
-
默认值:
"s x 2 & ~ g ( k f/"
应用的基路径。例如,如果整个单页应用服务在
/app/
下,然后base
就应该设为"/app/"
。
base: process.env.BASE_URL,
上面代码是vue-cli自动生成的配置,看到这里我就想修改BASE_URL,通过新建.env环境变量文件
环境变量
你可以在你的项目根目录中放置下列文件来指定环境变量:
.env # 在所有的环境中被载入
只有NODS * v k q 0E_ENV
,BASE_URL
和以VUE_APP_
开头的变量将通过wg f ^ m 6 B 0 (ebpack.DefI i a T d F M ^inePlugin
静态地嵌入到客户端侧的代码中
然后我在.env中修P ; # ? l }改BASE_URL,完全不起作用,随意设个VUE_APP_的变量是可以实现的,后来我发现了下面这段{ – b话,试着只修改vue.configK ( 3 T H a d v s.js
中的publicPath
-
BASE_URL
– 会和vue.config.js
中的publicPath
选项相符,即你的应用会部署到的基础路径。
vue-cli配置
publicPath
-
Type:
string
-
Default:
'/'
默认情况下,Vue Ce L 3LI 会假设你的应用是被部署在一个域名的根路径上,例如https://www.my-app.com/
。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在https://www.my-app.com/myu k l ` ( Y ,-app/
,则设置publicPath
为/C 6 w \my-app/
。
修改vue.config.js
中的publicPath( R ( N ( P w E后,得以实现c ( z { *配置服务的基路径。