现象

我用 uniapp 编写的小程序,生产打包之后会有png 的请求

[渲染层网络层错误] Failed to load local image resource /pages/login/https/6433686c4e6d59354d4745774d474e68596d5530596a6b794a535633654755325a6a6b7759544177593246695a5452694f54493d/img/shadow-grey.png 
 the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) 
(env: macOS,mp,2.01.2510241; lib: 3.11.2)

在这里插入图片描述

在这里插入图片描述

过程

在这里插入图片描述

然后网上翻,找到了这样的代码

if (h(wx.preloadAssets)) {
  const e="https";
  setTimeout(() => {
    wx.preloadAssets({
      data: [
        {
          type: "image",
          src: e + "/6433.../img/shadow-grey.png"
        }
      ]
    })
  })
}

含义是:

检查小程序是否支持 wx.preloadAssets

生产环境才会启用

用于提升小程序 UI 阴影渲染性能(UniApp 内置组件的 “阴影效果” 用的一张灰色 shadow 纹理图)

dev 环境关闭 preload 优化 → 所以 dev 没有该 PNG

解决思路

main.ts 中禁用

if (typeof wx !== 'undefined') {
    wx.preloadAssets = () => {}
}

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐