1

我正在从 Netlify CMS 中提取图像数组并将其传递给vue-picture-swipe组件,但是即使路径正确等,实际图像也不会呈现。

不知道我做错了什么?

模板

vue-picture-swipe(:items="items")

脚本

    <script>
      export default {
        data: function() {
          return {
                    items: []
                };
        },

            created: function () {
                this.imageList()
            },

            methods: {
                imageList: function () {
                  const files = require.context('~/content/gallery/images/', false, /\.md$/);

                    let images = files.keys().map(key => ({
                        ...files(key)
                    }));

                    let items = images.map(function(value) {
                        return {
                            'src': value.attributes.imgSrc,
                            'thumbnail': value.attributes.imgSrc,
                            'alt': value.attributes.imgDesc
                        }
                    });

                    return this.items = items
                }
            }

        };
    </script>  

呈现的 HTML

<img src="/assets/uploads/image.jpg" alt="Test Image description" itemprop="thumbnail">
4

1 回答 1

0

根据您的输出,如果value.attributes.imgSrc呈现类似的相对路径src="/assets/uploads/image.jpg",请尝试要求该路径。

我假设您的“资产”和“组件”文件夹直接位于“src”下:

let items = images.map(function(value) {
  return {
    'src': require('..' + value.attributes.imgSrc), // or require('@' + value.attributes.imgSrc)
    'thumbnail': require('..' + value.attributes.imgSrc),
    'alt': value.attributes.imgDesc
  }
})

请注意,每个项目的vue-picture-swipe items道具需要wh属性。

于 2019-03-26T09:31:28.667 回答