
也就是说,静态结构时,图片地址这样设置就可以正常显示:
而动态结构时,这样就不行
注意如果写成了
那就更加的错误了
这是因为网页会把根域作为相对路径的根目录,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。而通过vue-cli建的文件结构中,有一个叫做static的文件夹,是存放静态文件的,这个文件夹下的文件会按照原本的结构放在网站根目录下。这时再使用‘/static.......’这样的路径就可以访问这些静态文件了。
第二种办法是使用require()包裹相对路径
html部分:
js部分:
一、问题引入
像这种直接写死的没有出现什么问题。
但肯定是要改为父组件传值url过来属性绑定来设置的(毕竟是个组件,写死这组件的复用性就太差了)。此时看了一下运行项目后此图片的路径。
webpack编译后的图片文件夹 img 会直接在根目录,图片的上层目录 sys-head 也被忽略了,图片为了避免重复会默认重名了一个名字(vue-cli3搭建的工程)。
图片url也是相对路径写法:
子组件接收后设置图片url:
感觉没什么问题的运行后,图片没有显示:
二、解决方法
1、通过import的方法将图片源路径引入
这也是我这次重构遇到这个问题用的方法。
通过import的方法将图片源路径引入,这里使用相对路径。(打包编译会形参最终路径)
路径直接为引入的此图片(经测试,也可以是数组)。
然后子组件可直接根据此值设置图片 src 。
运行正常:
2、直接将你的图片源文件放在项目目录的 static 文件夹里
原项目用了这种解决方法。(看到了这张图片被放在了 static 文件夹中)
项目中创建 static 文件夹,把图片放入,即可以根据此路径引入。
原来vue-cli2搭建的项目可以使用这种,现在vue-cli3发现他也会把static做打包转化,这种方法使用不了。
3、使用require引入图片
也可以。但是要注意:require后面只能是字符串而不能是变量,所有动态路径无法实现。
要引入vue.js,可以通过在script的src属性中写一个网址来导入在线的vue.js文件。使用在Vue.js的官网上直接下载vue.js文件到本地通过在script的src属性中写一个网址来导入在线的vue.js文件。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)