質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

Q&A

解決済

1回答

676閲覧

templateタグ内でbackground-imageを指定したいがパスがうまく繋がらない

zushi0905

総合スコア683

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

0グッド

0クリップ

投稿2019/05/15 08:12

編集2019/05/15 08:27

お世話になっております。
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) }

Vue.jsでの画像指定方法を間違ってたので、振り返る

上の記事に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のコンポーネントで作っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました^^

publicフォルダにstaticフォルダ繋いで指定したら出来ました!

投稿2019/05/15 08:20

zushi0905

総合スコア683

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問