当前位置: 首页 > news >正文

uniapp中的静态资源文件,如图片等文件,h5端设置本地与生产测试环境的区别,本地不加前缀,生产测试添加前缀,h5端的已进行测试可行,非h5的未进行测试

在 UniApp 中,如果需在生产环境为静态文件添加前缀 /Check-app/,本地环境不加,且通过 manifest.json 配合配置实现(h5和非h5端分开实现)

一、主要思路

  1. **H5 端:**通过 manifest.json 中 H5 配置的 publicPath 区分环境(生产环境加前缀,本地不加)。
  2. **非 H5 端(App / 小程序等):**通过代码逻辑判断环境,动态拼接前缀(不依赖 manifest.json,因非 H5 端不支持 publicPath)。

二、manifest.json 完整配置( H5 端)

{"name": "你的项目名称","appid": "__UNI__XXXXXX","description": "","versionName": "1.0.0","versionCode": 100,"transformPx": true,"uniStatistics": {"enable": false},"app-plus": {"usingComponents": true,"nvueStyleCompiler": "uni-app","compilerVersion": 3},"mp-weixin": {"appid": "","setting": {"urlCheck": false},"usingComponents": true},"h5": {// 生产环境配置(HBuilderX 发行时生效)"publicPath": "/selfCheck-app/""title": "你的 H5 页面标题","router": {"mode": "hash"},// H5 端核心配置:publicPath 区分环境"devServer": {// 本地开发环境:publicPath 为根路径(无前缀)"publicPath": "/"},},"quickapp": {"package": "com.example.quickapp","name": "uni-app"}
}

配置说明:

  • **h5.devServer.publicPath:**本地开发时(HBuilderX 运行到浏览器)生效,值为 /(无前缀)。
  • **h5.publicPath:**生产环境(HBuilderX 发行 H5)生效,值为 /selfCheck-app/(添加前缀)。
  • 此配置仅对 H5 端有效,非 H5 端需单独处理。

三、非 H5 端(App / 小程序)处理逻辑,未测试

非 H5 端不支持 publicPath,需通过代码判断环境并动态拼接前缀,步骤如下:

1. 创建环境判断工具(utils/env.js)

/*** 判断是否为生产环境* 生产环境:HBuilderX 发行(打包)时* 开发环境:HBuilderX 运行(调试)时*/
export function isProduction() {// UniApp 打包时会注入 UNI_PLATFORM,开发时可能为 undefined 或包含 devconst platform = process.env.UNI_PLATFORM || '';// 生产环境的平台值不包含 dev(如 h5、mp-weixin、app-plus)return !platform.includes('dev') && platform !== '';
}

2. 创建静态资源路径工具(utils/staticPath.js)

import { isProduction } from './env';/*** 获取静态资源完整路径* @param {string} relativePath 资源相对路径(如 'img/logo.png')* @returns {string} 完整路径*/
export function getStaticPath(relativePath) {// H5 端已通过 manifest.json 的 publicPath 处理,直接返回 /static/xxxif (process.env.UNI_PLATFORM === 'h5') {return `/static/${relativePath}`;}// 非 H5 端:生产环境加前缀,开发环境不加const prefix = isProduction() ? '/selfCheck-app/static/' : '/static/';return `${prefix}${relativePath}`;
}

3. 在页面中使用静态资源

<template><!-- 图片 --><image :src="getStaticPath('img/logo.png')" mode="widthFix"></image><!-- 背景图(需用 :style 绑定) --><view :style="{ backgroundImage: `url(${getStaticPath('img/bg.jpg')})`,backgroundSize: 'cover'}"></view>
</template><script>
import { getStaticPath } from '@/utils/staticPath';export default {methods: {getStaticPath}
};
</script>

四、验证方式

  1. 本地开发环境测试:
  • H5 端:通过 HBuilderX 运行到浏览器,查看资源路径(如图片 src)应为 http://localhost:8080/static/img/logo.png(无前缀)。
  • 小程序 / App 端:运行到模拟器,查看资源路径应为 /static/img/logo.png(无前缀)。
  1. 生产环境测试:
  • H5 端:通过 HBuilderX 发行(发行 -> H5 网页),打包后查看资源路径应为 http://你的域名/selfCheck-app/static/img/logo.png(带前缀)。
  • 小程序 / App 端:发行打包后,通过工具查看源码,资源路径应为 /selfCheck-app/static/img/logo.png(带前缀)。

总结

  • H5 端:通过 manifest.json 中 h5.publicPath 和 h5.devServer.publicPath 区分环境,自动添加前缀。
  • 非 H5 端:通过代码判断环境,动态拼接前缀,确保生产环境路径包含 /selfCheck-app/。
    上述方案无需手动修改 process.env,完全适配 UniApp 官方构建流程,兼容性更强。
http://www.dtcms.com/a/574232.html

相关文章:

  • uni-app + Vue3 实现折叠文本(超出省略 + 展开收起)
  • 云南微网站搭建wordpress插件安装不
  • 汽车行业网站设计chrome google
  • 好用的云电脑!手机怎么用UU远程云电脑玩电脑游戏?
  • 网站开发安装网站原型图软件
  • 坑#Spring Cloud Gateway#DataBufferLimitException
  • 15年做哪些网站能致富网页升级访问紧急通知狼
  • ping: baidu.com: 域名解析暂时失败
  • 上海网站设计方法有哪些网站上可以做试卷
  • 网站建设项目立项登记 表自己家的电脑宽带50m做网站服务器
  • 宜宾公司做网站建设一个电子文学网站资金多少
  • 效率提升的声音助手——工业物联网中的智能化变革
  • 普罗宇宙发布大白机器人2.0 及灵巧手,携手京东加速全球化落地
  • Java 集合框架:List 体系与实现类深度解析
  • 阿里云 ip 网站哈尔滨行业网站建设策划
  • 注册了网站怎么建设网站视听内容建设
  • 泉州专业做网站网上做网站怎么防止被骗
  • 使用 ECharts + ECharts-GL 生成 3D 环形图
  • 做电影网站视频放在那里南阳做那个网站好
  • 美德的网站建设局网站建设招标
  • 学校网站的建设论文怎么建网站做推广
  • 第四阶段通讯开发-7:TCPListener和TCPClient
  • 中国最权威的网站排名电脑网站安全证书有问题如何解决
  • 网站建设实训小结在线网站流量查询
  • 深圳网站建设自己人做1688网站到哪里找图片
  • C++ —— list
  • xv6 附录A
  • 【设计题】如何实现一个线程安全的缓存?
  • 网站透明效果wordpress广告插件中文
  • 网站建设费用进会计什么科目界面设计与制作是做什么的