【发布时间】:2019-09-28 18:07:17
【问题描述】:
我有一个组件,它接受一个 url 的 prop 字符串。它可以是远程图片,也可以是资源文件夹中的本地静态资源。
目录结构:
-assets/
- logo.png
-app.vue
-components/
-ImageTest.vue
ImageTest.vue
<template>
<div>
{{imagelink}}
<div style="width: 150px; height: 150px; background-color: red">
<img :src="imglink" alt="" height="150px" width="150px">
</div>
</div>
</template>
<script>
export default {
name: "ImageTest",
props:{
imagelink: String,
},
computed: {
// a computed getter
imglink: function () {
console.log(this.imagelink)
return (this.imagelink)
}
}
}
</script>
<style scoped>
</style>
App.vue
<template>
<div id="app">
<ImageTest imagelink="./assets/logo.png" ></ImageTest>
<ImageTest imagelink="https://static.raymondcamden.com/images/banners/gate.jpg" ></ImageTest>
</div>
</template>
<script>
import ImageTest from './components/ImageTest.vue'
export default {
name: 'app',
components: {
ImageTest
}
}
</script>
<style>
</style>
输出:(静态文件不起作用,但我可以从开发者检查器工具中看到url是在src中加载的)
【问题讨论】:
-
您尝试使用
@/assets/logo.png吗? -
我已经试过了。在浏览器中,所有已加载的图片都显示为 /img+filename+hash.jpg 或 .png 。不是 assets/filename.png 例如 localhost:8080/img/logo.64c8535c.png 。这有什么线索吗? ——
-
对不起,链接应该是
imagelink="require('@/assets/logo.png')" -
你试过
imagelink="../assets/logo.png"吗? -
@Derek 我试过了,现在控制台出现错误。渲染错误:在 --->
at src/components/ImageTest.vue 中找到“错误:找不到模块'@/assets/logo.png'”
标签: vue.js vue-component