国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序拼接圖片鏈接無底洞深入探究

2019-11-19 10:55:01
字體:
來源:轉載
供稿:網友

背景

由于小程序包大小限制,我們一般都會將icon存放到cdn上。現在的開發流程需要在開發測試環境下圖片使用開發域名,線上使用生產域名。

問題重現

在小程序onLaunch的時候讀取配置文件獲取當前環境,并得到開發環境圖片域名:

./app.js

const { imgHostDev, imgHostProd, env } = require('./app.config.js')App({ onLaunch: function () { this.globalData.imageHost = env == 'dev' ? imgHostDev : imgHostProd }, globalData: { imageHost: '' }})

在頁面中:./pages/index/index.js

const app = getApp()Page({ data: { imgHost: '' }, onLoad: function () { this.setData({  imgHost: app.globalData.imageHost }) }})

./pages/index/index.wxml

<image src="{{imgHost}}/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg" mode="aspectFit"></image>

圖片渲染出來了,但是在開發者工具中有報錯

VM1334:1 Failed to load local image resource /4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg
the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error)

手機預覽就看不到圖片。。。

分析

看一下報錯信息,說本地不存在/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg這個文件。 也就是說頁面在執行onLoad之前就已經渲染了,這個時候imgHost值為空字符串,image的src拿到的圖片鏈接就是/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg,image標簽就以為這是本地圖片導致的。

修復

當然修復的方法有很多,

可以將imgHost在初始化的時候就賦值:

const app = getApp()Page({ data: { imgHost: app.globalData.imageHost }, onLoad: function () { }})

也可以在標簽中做判斷

<image src="{{imgHost ? imgHost + '/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg' : ''}}" mode="aspectFit"></image>

更多嘗試

之前都是渲染網絡圖片,如果讀取本地圖片更換不同文件夾中的同名圖片呢?發現也是如此。

如果圖片鏈接里有多個變量,就建議在wxs文件中寫一個方法來配置圖片

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 阿拉尔市| 饶阳县| 得荣县| 灯塔市| 商水县| 水富县| 巴彦县| 旌德县| 惠东县| 靖州| 平江县| 同仁县| 策勒县| 会东县| 五指山市| 黔南| 太谷县| 吴江市| 崇信县| 涟源市| 前郭尔| 沐川县| 延边| 凤台县| 娄烦县| 光山县| 周口市| 郎溪县| 漠河县| 台东市| 靖州| 北京市| 德格县| 惠水县| 林周县| 福州市| 济源市| 岳普湖县| 肥西县| 古丈县|