我的vue-cli 3项目设置具有以下目录结构:
所有静态资产均已加载到公共目录中,并已在 localhost 上成功编译和构建。
如下图所示, guyana-live-logo.png , slide-1.jpg 和 970x250-ad.png 均已成功加载,但是,徽标和广告图像仅显示在浏览器中。
原始图片-适用于几乎所有其他图像
<img src="/img/slide-1.jpg"/>
测试0-加载了带有哈希值的图片(slide-1.1b0ahsa.jpg),但它仍然没有出现在浏览器中
<img src="../../../public/img/slides/slide-1.jpg">
测试1-使用v-bind
<img :src="'/img/slide-1.jpg'"/>
将图像移动到src目录和component子目录中都被证明是徒劳的。
更新vue-loader
为生产而构建,仅提供/ dist文件夹
.png
加载而其他则没有,.jpg
也是一样。<script type="text/javascript" src="<%= BASE_URL %>js/script.js"></script>
答案 0 :(得分:1)
这些图像必须与您要访问它们的文件位于同一目录或该文件的子目录中(即Components
目录中)。
您还可以尝试通过其URL <img src="http://localhost:8080/img/guyana-live-logo.png" />
访问该图像吗?
这应该可以,但是您可能不想以这种方式使用它。
您可能可以使用的另一种方法是:
<script>
import image from './img/slide-1.jpg'
...
然后在Vue data
:
data() {
return {
img: image,
};
},
然后在您的HTML中:
<img :src="image"/>
这解决了在使用Parcel Bundler进行构建时尝试访问图像的问题