uni-app 微信小程序打包发行有多余css,且关联图片不能访问 shadow-grey.png
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 也访问不到,浏览器中和微信开发者工具中都超时。
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-loader
或file-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和资源文件访问问题。如果问题依旧存在,建议检查具体的错误日志,以便进一步定位问题。