liux1506
liux1506
  • 发布:2020-06-18 15:52
  • 更新:2020-12-14 17:27
  • 阅读:1523

关于h5 -> router -> base 打包问题,环境配置问题

分类:uni-app

两个问题

前提:项目为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,此情况有何解决方案

希望大神为我解惑

2020-06-18 15:52 负责人:无 分享
已邀请:
liux1506

liux1506 (作者) - it

没有人吗。

DCloud_UNI_FXY

DCloud_UNI_FXY

img=>image

2***@qq.com

2***@qq.com - 111

解决了吗!! 除了手改源码还有别的办法吗

该问题目前已经被锁定, 无法添加新回复