为什么我的图像不能加载到Vue.js 2中?

时间:2017-07-06 22:17:21

标签: javascript vue.js vuejs2 vue-component

我正试图通过Vue.js 2中的相对路径来加载我的图像,但似乎有些东西掉了。我只是对Vue表示不满,并且会欣赏任何指针。所述图像位于/ src / assets / imgs目录中。

以下是相关组件的相关代码段。

File tree screenshot

<template>
  <section class="container sources">
        <h2>{{ heading }}</h2> 
        <div class="columns">
            <div class="column" v-for="source in sources">
                <figure :title="source">
                    <img :src="imgPath + source + '.png'" :alt="source + ' logo'">
                    <figcaption>{{ source }}</figcaption>        
                </figure>        
            </div>
        </div>
    </section>
</template>

<script>
export default {
   name: 'sources',
   data () {
      return {
          heading: 'News Sources',
          imgPath: 'src/assets/imgs/',
          sources: [
            'al-jazeera-english', 'associated-press', 'bbc-news', 'bbc-sport', 'business-insider', 'cnn', 
            'daily-mail', 'entertainment-weekly', 'espn', 'financial-times', 'fox-sports', 'hackernews', 
            'ign','independent', 'mtv-news', 'national-geographic', 'new-scientist', 'reuters', 'techcrunch', 'the-economist', 'the-guardian-uk', 'the-huffington-post', 'the-new-york-times', 
                'the-washington-post'
           ]
      }
   }
}
</script>

修改:根据要求添加了项目(简单)文件树的屏幕截图。当然,所述图像位于'imgs'文件夹中。

4 个答案:

答案 0 :(得分:4)

假设您使用vue-cli中的网络包模板,您只需使用static assets的相对路径。

<img :src="'./assets/imgs/' + source + '.png'"

或者,将您的图像放在static目录中,并使用绝对路径引用它们,即

<img :src="'/static/imgs/' + source + '.png'"

答案 1 :(得分:0)

要通过Vue.js中的JS创建指向包含在资产文件夹中的列表的链接,必须首先导入图像:

从'@ / assets / myImage.png'导入img

然后在变量中引用导入的图像文件: 图片:img,

然后最后将img保存到img标签: :src =“ image”

答案 2 :(得分:0)

在我的情况下,我使用了 ../ assets / {图像名称}

src / components / SomeComponent.vue

<style>
    .black.square{
        background: url(../assets/logo.png);
    }
</style>

答案 3 :(得分:0)

这应该有效

<img :src="image" >
data () {
  return {
    image: require('@/assets/images/pin.svg')
  }
},