1.使用Require加载
在项目中我们一般直接写地址途径是加载不出来图片的,如:
<img src='../../assets/about_logo.png' />
可以这样写
<img src=require('../../assets/about_logo.png') />
或者
import imgURL from '../../assets/about_logo.png'
<img src={imgURL} />
2.这个问题导致的原因其实和你的webpack中的配置有关系
在webpack中我们导出模块都是使用的module.exports 的方式导出的,没错看到这里你们肯定就联想到了AMD和CMD以及CommonJS这部分,使用require加载图片之后我们的图片地址就会变成一个[object Module],这才导致图片地址失效的问题,解决这个办法就是这时我们需要在webpack.config.js
里面配置下,找到图片配置的地方,将esModule
修改成false就可以了
*注:
require.js在申明依赖的模块时会在第一之间加载并执行模块内的代码: 我觉得这里这么说更通俗形象一点:require.js在申明依赖的模块时会在第一之间加载并解析模块内的代码,也就是说amd规范和require.js 其实是异步预加载, 无论这个模块是否被使用这个模块都会被提前加载过来并解析。而cmd规范的seajs则是,在用到的时候才去require‘加载’,并且需要等模块解析后才能继续使用这个模块,才能向下执行代码(同步)