7***@qq.com
7***@qq.com
  • 发布:2023-05-06 18:27
  • 更新:2023-11-20 22:01
  • 阅读:300

【报Bug】h5构建会默认添加base路由

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 13.3.1

浏览器平台: Chrome

浏览器版本: 112

项目创建方式: CLI

CLI版本号: 3.0.0-alpha-3080120230428001

示例代码:

export default defineConfig(({ command }) => {  
 base:command == 'serve' ? '/':`https://www.baidu.com/newapp/prod`  
}  

操作步骤:

npm run build 即可

预期结果:

不需要添加newapp/prod部分 访问域名即可正常访问

实际结果:

会默认添加路由base newapp/prod 部分

bug描述:

发行平台:h5
复现方式:通过vite.config.ts 配置base选项为oss远程静态文件URL 访问部署成功后的域名 会默认添加路由base
如:base配置为 https://www.baidu.com/newapp/prod 部署域名为http://www.appnew.com 访问该域名会自动变成http://www.appnew.com/newapp/prod

2023-05-06 18:27 负责人:YUANRJ 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

base 用来配置 应用基础路径,应和你部署的路径相同(注意不应该包含域名,也就是不需要是全量路径,而仅仅是基础路径)
例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/",支持设置为相对路径 "./
如果你的部署路径是根目录,则无需配置

  • 7***@qq.com (作者)

    使用vite构建的 base不就是相当于 webpack 的publicPath 如果只设置相对路径那么构建的时候 静态文件路径怎么修改oss的链接呢

    2023-05-06 20:22

  • 7***@qq.com (作者)

    如果vite.config.ts base 设置为、或./ 那么静态资源的cdn地址应该怎么配

    2023-05-06 20:42

  • DCloud_UNI_WZF

    回复 7***@qq.com: base 和 publicPath 不相同,目前 manifest.json 中 仅支持 vue2 配置 publicPath

    如果项目整体上cdn, base 就可以解决,如果部分资源上cdn,vue3 项目可尝试使用全局变量拼接,或新建 vite.config.js 借助 vite 插件实现

    2023-05-06 21:23

  • 7***@qq.com (作者)

    回复 DCloud_UNI_WZF: 因为在普通的vue3项目 base配置为cdn的地址 所有的静态资源都会替换成cdn的地址 并不会去影响路由的base,在uni-app里面就有这个问题 base配置为cdn的地址 就会影响到路由的base

    2023-05-09 10:34

  • DCloud_UNI_WZF

    回复 7***@qq.com: 提供下测试工程,这边排查下

    2023-05-09 10:40

  • 7***@qq.com (作者)

    回复 DCloud_UNI_WZF: 附件已上传

    2023-05-09 17:01

7***@qq.com

7***@qq.com (作者)

项目模拟了cdn服务
npm i 安装依赖以后 直接运行 npm run preview 即可启动一个项目 和一个模拟cdn静态资源的服务

实际结果
vite.config.ts 配置了 base: command == 'serve' ? '/' : "http://localhost:3000/dist/build/h5"
会影响项目路由的base 访问项目根路由时默认自动添加dist/build/h5
按照正常vue3项目 修改vite.config.ts 里面的base配置项只会更改静态资源路径 不会影响项目路由的base

期望结果
不影响项目路由的base 访问项目根路由能正常访问

  • YUANRJ

    这是符合预期的,标准的vue项目路由也会添加base,你可以根据环境变量,动态拼接资源路径

    2024-02-20 16:30

4***@qq.com

4***@qq.com

还没解决吗

  • YUANRJ

    请描述下你的问题

    2024-02-20 16:30

要回复问题请先登录注册