在uniapp中给元素样式加上图片背景,编译成h5正常,但是编译成微信小程序以后背景图片失效:
1 | background: url('/static/img/bg.png'); |
解决办法是把背景图片的图片路径改成base64
编码:1
background: url(data:image/png;base64,xxxxxx);
使用base64
编码的背景图片在微信小程序也可以正常显示了,接下来直接把base64
编码写在页面文件中太难看了,改成全局css变量,方便替换和全局调用。
1、新建一个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;