前言
最近在弄一个微信公众号,是H5前端,用到的是vant组件。
当然Vant的官方文档以及例子都有,但是很多时候并不能满足我们的需求,需要对它进一步开发。
Vant官方文档
使用官方的例子
<van-card
title="小明"
desc="常出现于小学初中作文、英语、数学题、物理题、化学题
和笑话中。此名拥有极为悠久的历史内涵,在中国的各种“名著”
上皆有出现,体现了中国丰富的华夏文明,甚至一度代表中国冲
出亚洲,成为了”最有影响力的名字“之一。"
thumb="https://pic1.zhimg.com/80/v2-8f151a102586aec7cb672736497d7bd2_qhd.jpg"
/>
效果如下:
很明显,引用非本地的图片没有问题,但是引入了本地的图片就会gg,其实一开始我引入图片没有问题,后来重启了前端就不行了(在线求大佬指导,缓存清过了,也是不行),你会发现,图片引入路径没有问题,但是就是不显示,把图片url复制去查看,然后控制台监视,发现会报错:
Uncaught SyntaxError: Unexpected token ‘<‘
是什么原因呢,网上有说很多不同的问题导致,有些说是js引入错误,有些说是图片地址有问题,解决方案也是五花八门,那么至于要深究为什么的,请移步这里:
解决 Uncaught SyntaxError: Unexpected token ‘<‘ 错误解决方法
解决办法
我参考了网上的解决方法,采用了我都觉得不太科学的解决方案,我将静态文件放到了public下面,然后就见鬼的能用了。
截止发帖前,我删掉了public文件夹下面的静态资源,又能显示了,我在引入地址上没有使用require也能正常显示,我百思不得其解。
总结
(一)assets文件夹与static文件夹的区别
区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了
区别二:assets中的文件在vue中的template/style下用…/这种相对路径的形式进行引用,在script下必须用@import的方式引入,而static下的文件在.vue中的任何地方都只要使用…/这种相对路径的方式引入
结论:
1.assets用来放置样式、静态图片,只要src下面的组件中用到的资源就放在assets中。
2.static用来放没有npm包的第三方插件,字体文件。
3.assets与components同级 components下的.vue引用静态文件时,相对路径为 …/assets/images/
4.assets与app.vue同级 相对路径为 ./assets/images/
(二)vue如何引入其它静态文件:
1.src目录下的资源只能import或require。
2.想静态引入的话,建立一个与src同级的目录例如static,然后把静态资源放入该文件夹下,html的引入路径如下:./static/…
注:试过一定要放在static文件夹下,否则报错
原文地址:Vue内部的 静态资源文件引用规则
有一定的知识补充,但是我的问题并没有得到很好的解释,静待大佬指教。