两个问题
前提:项目为vue-cli创建。修改h5->router->base为“./”
"h5": {
"router": {
"base": "./"
}
},
问题1
我想创建一个sit.env.js 然后发布测试环境,结果 base 无作用。查看源码如下:
// 在node_modules\@dcloudio\uni-cli-shared\lib\manifest.js中
if (process.env.NODE_ENV === 'production') { // 生产模式,启用 publicPath
h5.publicPath = h5.publicPath || base
if (!h5.publicPath.endsWith('/')) {
h5.publicPath = h5.publicPath '/'
}
} else { // 其他模式,启用 base
if (base.startsWith('./')) {
// 在开发模式, publicPath 如果为 './' webpack-dev-server 匹配文件时会失败
h5.publicPath = base.substr(1)
} else {
h5.publicPath = base
}
}
如有此需求,如何处理。
问题2
项目部署在服务器路径/path1/path2中,在base为“./”的情况下静态文件没有任何问题,但是如有img的src是从后台拉取的则也会受base干扰
例:
<img src="/attachment/download?id=xxxx"/>
期望:
打包之后路径为http://host:port/attchment/download?id=XXXX
结果:
打包之后路径会变成http://host:port/path1/path2/attchment/download?id=XXXX。则被nginx location为/path1/path2/拦截。报404,此情况有何解决方案
3 个回复
liux1506 (作者) - it
没有人吗。
DCloud_UNI_FXY
img=>image
2***@qq.com - 111
解决了吗!! 除了手改源码还有别的办法吗