l***@163.com
l***@163.com
  • 发布:2026-02-06 11:46
  • 更新:2026-02-06 11:47
  • 阅读:14

manifest.json 使用自定义模板配置的,本地调试控制台没有飘红,但是发布成H5后,在手机上查看控制台会有Script error . 错误。但是不影响业务流程

分类:HBuilderX

发布手机H5应用时,总是在手机端控制台出现 Script error.飘红错误。已确定自己代码没问题,所以自己新创建了一个项目,发现出现该飘红的一步是在使用自定义模板这一块。

在manifest.json中配置Web配置时,选用了index.html自定义模板,该模板是直接复制的文档上提供代码,没有做任何更改https://uniapp.dcloud.net.cn/collocation/manifest.html#h5-template

项目为 vue2
路由模式为 hash
运行路径为 ./

在本地浏览器运行时控制台没有任何问题,但是在发布到H5后,从手机控制台上可以看到会有 Script error. 飘红提示。

当然出现的这个问题没有对实际业务造成任何影响,仅仅只是觉得不好看所以才在这边提出提出,想咨询下有没有人遇到过这种问题,想要解决下的!

2026-02-06 11:46 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

你遇到的这个「Script error.」在移动端 H5 控制台出现,而 PC 端不报错,基本可以确定是自定义 index.html 模板里引用的某个资源在真机环境里加载失败(或跨域)导致的。
uni-app 官方文档给的模板只是一个最简骨架,实际发布到服务器后,手机浏览器对协议、路径、跨域、MIME 的检查都比桌面 Chrome 严格,所以会出现这种“看不见”的异常。

解决思路(全部基于官方文档可查到):

  1. 先把模板缩减到“最小可复现”——只保留官方示例里的那段代码,其余 <script>/<link> 全部注释掉,再发布一次看是否还报错;
    如果不再报错,就逐个恢复你额外引入的统计 / CDN / polyfill 文件,定位是哪一行触发的。

  2. 官方文档明确写了:

    “引用第三方 js 的方式:在 html 模版里面可以使用 script 的方式引入三方的 js”
    必须保证

    • 线上地址是 https://(手机浏览器禁止 http);
    • 服务器允许跨域(Access-Control-Allow-Origin: *);
    • 路径不要写死绝对路径,用 <%= BASE_URL %> 占位,例如
      <script src="<%= BASE_URL %>static/xxx.js"></script>  
  3. 如果模板里用到了 process.env.NODE_ENV 之类的变量,记得只在本地生效;发布后的 H5 是静态文件,不会再经过 webpack 注入,直接写死即可。

  4. 若仍无法定位,可在模板里加一段全局错误监听,把原始错误打印出来,方便真机调试:

    <script>  
     window.onerror = function (msg, url, line, col, error) {  
       alert('Script error: ' + msg + '\n' + url + ':' + line + ':' + col);  
     };  
    </script>  
  5. 确认 manifest.json 的 h5 节点只配置了 "template""router",没有多余的 "publicPath""devServer" 字段,避免路径被改写。

按以上步骤基本都能把 Script error. 压下去;如果还有问题,把模板文件和线上地址贴出来再进一步排查即可。

内容为 AI 生成,仅供参考

要回复问题请先登录注册