最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Can't dynamically pass relative src path for imgs in Vue.js + webpack - Stack Overflow

programmeradmin5浏览0评论

The issue I'm having is using vue.js with webpack.

I have a list that I want to dynamically populate in vue.js.

I am using v-for to iterate over each object and create the list items.

To bind a img src tag to data point {{resource.img}} it looks like this: <img v-bind:src="resource.img"> to dynamically load an image.

However, when the client renders the page, the src path is correct, however it is the actual relative path (e.g. "../assets/example.png" etc, instead of the path webpack outputs. Thus, the image creates a 404 because there is no image at "../assets/example.png".

Alternatively, if I hardcode the src the image loads, and the the src is some path that webpack created, finding the correct image.

How can I dynamically set the src with webpack and vue.js?

The issue I'm having is using vue.js with webpack.

I have a list that I want to dynamically populate in vue.js.

I am using v-for to iterate over each object and create the list items.

To bind a img src tag to data point {{resource.img}} it looks like this: <img v-bind:src="resource.img"> to dynamically load an image.

However, when the client renders the page, the src path is correct, however it is the actual relative path (e.g. "../assets/example.png" etc, instead of the path webpack outputs. Thus, the image creates a 404 because there is no image at "../assets/example.png".

Alternatively, if I hardcode the src the image loads, and the the src is some path that webpack created, finding the correct image.

How can I dynamically set the src with webpack and vue.js?

Share Improve this question asked Oct 6, 2016 at 22:50 cchingcching 7991 gold badge8 silver badges17 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 10

You need require.context.

For example:

<img width="30" height="30" :src="imgUrl(resource.img)">

var images = require.context('../../assets/img/', false, /\.jpg$/)

export default {
  methods: {
    imgUrl: function (path) {
      return images('./' + path)
    }
  }
}

The require.context will essentially map the source path to the final path in the build directory for any image that it found in the source folder. This is how the imgUrl() method will return the right path at runtime.

发布评论

评论列表(0)

  1. 暂无评论