お世話になっております。
dataバインディングで記事の一覧を表示するコンポーネントを作ろうとしてます。
最後はv-forでループしてより短いコードにしようと考えています。
VUE CLI 3.7
dataバインディングで記事の一覧を表示するコンポーネントを作りたい。最後はv-forでループしてより短いコードにしようと考えている。
発生している問題・エラーメッセージ
サムネイルとなる画像が表示されない。data内のurlを使いたいのでtemplate内でのパスを繋ぐ方法を探している。
template
1<template> 2... 3<div class="flexBox"> 4 <!-- ブロック1 --> 5 <div> 6 <div class="thum" v-bind:style="{ 7 'background-image': 'url('+ articles.image + ')' 8 }"></div> 9 <p>{{ articles.text }}</p> 10 <p class="date">{{articles.date}}</p> 11 <a v-bind:href="articles.url"></a> 12 </div> 13 <!-- ブロック2 --> 14 <div> 15 <div class="thum" style="background-image: url('/static/img/common/news_dammy02.jpg')"></div> 16 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 17 <p class="date">2019.05.05</p> 18 <a href="/news/"></a> 19 </div> 20 <!-- ブロック3 --> 21 <div> 22 <div class="thum temp"></div> 23 <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p> 24 <p class="date">2019.05.05</p> 25 <a href="/news/"></a> 26 </div> 27 28</div><!-- /.flexBox --> 29 30... 31</template>
script
1<script> 2export default { 3name: 'newslnkitem', 4data: function(){ 5 return{ 6 articles : 7 { 8 image: "../assets/img/common/news_dammy01.jpg", 9 text: 'テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト', 10 date: '019.05.05', 11 url: '/news' 12 }, 13 } 14} 15} 16</script>
style
1<style> 2.temp{ 3 background-image: url('../assets/img/common/news_dammy01.jpg') !important; 4} 5</style>
試したこと
style内でbackground-imageを指定してクラスを指定したら表示された(ブロック3)。
この時Googleデベロッパーツールで確認したパスは次のようになってます。
.temp { background-image: url(/img/news_dammy02.779c7fb6.jpg) }
上の記事にstaticフォルダを使えば読み込めるとあったので、ドキュメントルートにstaticフォルダを作成しブロック2のように読み込もうとしたがダメだった。
フォルダ構成 project ├── public ├── src │ ├── App.vue │ ├── assets │ │ ├── img │ │ │ ├── common │ │ │ ├── news_dammy01.jpg │ │ │ └── news_dammy02.jpg │ │ └── logo.png │ ├── components │ │ └── NewsLnkItem.vue │ ├── main.js │ ├── router.js │ └── views └── static └── img └── common
NewsLnkItem.vueのコンポーネントで作っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。