uniapp编译成微信小程序背景图片失效

在uniapp中给元素样式加上图片背景,编译成h5正常,但是编译成微信小程序以后背景图片失效:

1
background: url('/static/img/bg.png');

解决办法是把背景图片的图片路径改成base64编码:

1
background: url(data:image/png;base64,xxxxxx);

使用base64编码的背景图片在微信小程序也可以正常显示了,接下来直接把base64编码写在页面文件中太难看了,改成全局css变量,方便替换和全局调用。

1、新建一个scss文件用来存放变量:
base64-pic-store.scss
2、把base64-pic-store.scss里面的$background-base64-code变量赋值为背景图片的base64编码:

1
2
// 背景图base64编码
$background-base64-code: url(data:image/png;base64,xxxxxx);

3、在项目根目录底下的uni.scss文件里引入我们的变量scss文件,用于全局可调用:

1
2
/* 引入变量文件 */
@import "@/common/css/base64-pic-store.scss";

4、在需要调用背景图片的地方调用全局变量:

1
background: $background-base64-code;