Vue-Cli 访问静态文件

  • 版本:
    D:>vue -V
    @vue/cli 4.5.7

  • 目录结构

    image.png
  • 问题:
    无论如何设置,都无法访问/static的图片,百思不得其解!

-解决:
找了半天,发现根目录居然有一个/static的文件夹,事实上,vue的静态文件是放在/public/static里的,这个长在根目录下的/static是怎么来的???原因未知。这下就好办了,把图片挪到/public/static里,一切正常。

  • 结论:
  1. /public/static的资源,只能用绝对地址来访问:
    <img src="/static/logo.png" />
    <img :src="'/static/logo.png'" />
    注意第1行是HTML最传统的加载方法,就是显示一副固定图片。
    第2行是vue将src属性进行了双向绑定,此处的'/static/logo.png',很明显它就是一个字符串,因此也可用一个变量来表达,便于动态加载图片。用这种方式webpack不会对其进行打包,static下的所有文件只是原封不动地进行Copy处理(但仍然是按需原则,那些完全没有使用到的资源并不会被拷贝)

  2. /src/assets内的资源,可以用相对地址来访问:
    <img :src="require('../assets/logo.png')" />
    以这种形式加载,同样对src进行了双向绑定,可以支持动态加载,但webpack会将其打包,并修改其文件名。

  3. 任意目录的资源,可以用相对地址来访问:
    <img src = "../../hello/logo.png" />
    假设有/hello这个目录,可以用相对地址进行访问(任意目录),但是webpack会自动将它转化为base64图片字符串形式,并且这种方式只能访问固定资源,无法双向绑定,自然也无法使用变量来动态加载了。

  4. 心得:当发现无法访问static的资源时,先看看static是不是在public下,免得走冤枉路!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rockage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值