您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“微信小程序拼接圖片鏈接無底洞的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“微信小程序拼接圖片鏈接無底洞的示例分析”這篇文章吧。
背景
由于小程序包大小限制,我們一般都會將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>
以上是“微信小程序拼接圖片鏈接無底洞的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。