WeexBox官方QQ群号:943913583
vue
在讲WeexBox以前,咱们先来看看Weex是如何作图片加载的。
Weex提供了<image>来加载图片,更具体的说,<image>有3种使用方式。git
src=Base64 谁会把Base64硬写到源码里?
src=http 那我是否是要先把图片部署到服务器,再把这个图片的地址拷贝来用,麻烦不麻烦?
src=相对路径 相对路径是相对bundle URL的,相对路径将被重写为绝对资源路径(本地或远程)。 可是我在开发的时候,我更清楚的知道图片相对源码的路径而不是最终bundle的路径。
综上,weex的这3种方式用着都很别扭。github
抛开weex的限制,我就问你开发中使用图片最舒服的方式是什么。
答案固然是:卧槽用file-loader啊!npm
若是把file-loader集成进weex项目,在项目里用file-loader的方式引用图片,跑weex debug确定是会报错的,不信的童鞋能够试试。json
因而WeexBox提供了@weexbox/debugger和@weexbox/builder。它们不但能让你开心的用file-loader,还提供了一些便利的功能。服务器
假设你已经用@weexbox/cli初始化好了项目,而且会使用file-loader。使用图片大概是这样的。(点击查看完整例子)weex
<template> <div> <image :src="logo" class="logo" /> </div> </template> <script> import logo from '../../../static/logo.png' export default { data() { return { logo, } }, } </script>
这种使用图片的方式是否是既熟悉又怀念。网络
重点来了,打开config/update-config.json文件,你能看到形以下面的配置。app
const config = { develop: { // 从网络加载图片 imagePublicPath: 'https://raw.githubusercontent.com/aygtech/weexbox-template/master/deploy', }, test: { // 从网络加载图片 imagePublicPath: 'https://raw.githubusercontent.com/aygtech/weexbox-template/master/deploy', }, preRelease: { // 从app加载图片 imagePublicPath: 'bundle://', }, release: { // 从app加载图片 imagePublicPath: 'bundle://', }, } module.exports = config
当imagePublicPath
为http
时,须要你本身把deploy
部署到服务器,图片地址便是部署的地址。
当imagePublicPath
为bundle://
时,weexbox会自动拷贝static
到app中。ui
因而乎,调试的时候跑npm run debug xxx/App.vue
的时候,本机图片能够正常显示了。部署的时候,任君挑选是要部署到服务器仍是app中。
因而可知,切换图片源不用你改动任何一行业务代码,weexbox所有帮你搞定了。