vue中img的src绑定

vue中img的src绑定,第1张

在平常的处理中,img的src通常采用相对路径的方式来指定,然而在Vue中通过‘:src’动态绑定时不能如此,图片会加载失败。

也就是说,静态结构时,图片地址这样设置就可以正常显示:

而动态结构时,这样就不行

注意如果写成了

那就更加的错误了

这是因为网页会把根域作为相对路径的根目录,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。而通过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文件。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11370847.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存