uni-app 微信小程序打包发行有多余css,且关联图片不能访问 shadow-grey.png

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app 微信小程序打包发行有多余css,且关联图片不能访问 shadow-grey.png

示例代码:

开发模式没有多余css
运行模式有多余css,且不能访问所示链接 https://cdn1.dcloud.net.cn/img/shadow-grey.png

操作步骤:

创建默认uni项目,发行到微信小程序

预期结果:

正常打包相关css

实际结果:

有多余css,且相关链接无法访问

bug描述:

如题,代码以 发行 模式到微信小程序后,app.wxss会多一部分内容

page::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn1.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn1.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn1.dcloud.net.cn/img/shadow-grey.png)}}page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}

以 开发 模式运行的微信小程序后app.wxss并没有https://cdn1.dcloud.net.cn/img/shadow-grey.png相关内容
https://cdn1.dcloud.net.cn/img/shadow-grey.png 也访问不到,浏览器中和微信开发者工具中都超时。


3 回复

https://cdn1.dcloud.net.cn/img/shadow-grey.png 这个链接访问超时吗?你在命令行执行一下ping cdn1.dcloud.net.cn,执行结果发上来我们查一下


是的,访问超时,浏览器和微信开发者工具都访问不到 @DCloud_云服务_Mal

在uni-app开发微信小程序时,确实可能会遇到打包发行后包含多余CSS以及资源文件(如图片)无法访问的问题。这通常是由于资源引用路径不正确或者打包配置不当导致的。下面是一些针对性的代码示例和配置方法,帮助你解决这些问题。

1. 确保资源路径正确

首先,确保你的图片资源shadow-grey.png放置在正确的目录下,通常是在static或者assets文件夹中。然后在你的组件或页面中正确引用这个图片。

示例代码

假设图片放置在static/images目录下,引用方式如下:

<template>
  <view class="container">
    <image class="shadow" src="/static/images/shadow-grey.png"></image>
  </view>
</template>

<style scoped>
.container {
  /* 其他样式 */
}

.shadow {
  width: 100px;
  height: 100px;
}
</style>

2. 配置webpack或Vite打包(如适用)

uni-app默认使用自己的打包机制,但如果你使用了自定义的webpack或Vite配置,确保配置正确处理了静态资源。

webpack配置示例

如果你确实需要自定义webpack配置(虽然uni-app不常需要),确保你的url-loaderfile-loader正确处理了图片文件。

module.exports = {
  // 其他配置...
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif|svg)$/i,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[path][name].[hash].[ext]',
              outputPath: 'assets/images',
            },
          },
        ],
      },
      // 其他loader配置...
    ],
  },
};

注意:uni-app通常不需要直接修改webpack配置,这里仅作为示例说明。

3. 清理多余CSS

为了清理多余CSS,可以使用Tree Shaking或者CSS Minification工具。uni-app在构建时已经内置了一些优化措施,但你可以通过配置manifest.json中的mp-weixin部分来进一步控制。

manifest.json配置示例

{
  "mp-weixin": {
    "appid": "your-app-id",
    "setting": {
      "urlCheck": false,
      "es6": true,
      "postcss": true,
      "compileType": "miniprogram",
      "minified": true // 启用代码压缩,包括CSS
    }
  }
}

确保minified设置为true以启用代码压缩。

通过上述方法,你应该能够解决uni-app在微信小程序打包发行时遇到的多余CSS和资源文件访问问题。如果问题依旧存在,建议检查具体的错误日志,以便进一步定位问题。

回到顶部