您好,登錄后才能下訂單哦!
今天小編給大家分享一下微信小程序拼接圖片鏈接無底洞問題怎么解決的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
背景
由于小程序包大小限制,我們一般都會將icon存放到cdn上。現(xiàn)在的開發(fā)流程需要在開發(fā)測試環(huán)境下圖片使用開發(fā)域名,線上使用生產(chǎn)域名。
問題重現(xiàn)
在小程序onLaunch的時候讀取配置文件獲取當前環(huán)境,并得到開發(fā)環(huán)境圖片域名:
./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>
圖片渲染出來了,但是在開發(fā)者工具中有報錯
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)
手機預(yù)覽就看不到圖片。。。
分析
看一下報錯信息,說本地不存在/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg這個文件。 也就是說頁面在執(zhí)行onLoad之前就已經(jīng)渲染了,這個時候imgHost值為空字符串,image的src拿到的圖片鏈接就是/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg,image標簽就以為這是本地圖片導(dǎo)致的。
修復(fù)
當然修復(fù)的方法有很多,
可以將imgHost在初始化的時候就賦值:
const app = getApp() Page({ data: { imgHost: app.globalData.imageHost }, onLoad: function () { } })
也可以在標簽中做判斷
<image src="{{imgHost ? imgHost + '/4jZ1L1qECEOsikW2JKsyHQ==/109951164304393164.jpg' : ''}}" mode="aspectFit"></image>
以上就是“微信小程序拼接圖片鏈接無底洞問題怎么解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。