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

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

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

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

Q&A

解決済

1回答

433閲覧

Vue.jsの単一コンポーネントでのstyleの記述

tampopopofu

総合スコア22

Vue.js

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

0グッド

0クリップ

投稿2019/01/27 07:44

編集2019/02/02 08:53

Vue.jsの単一コンポーネントで画面を作成しております。
<div>の背景に画像を表示したいのですがどうすればいいのでしょうか。
background-imageのurlの指定方法が分かりません。
laravel-mixを使ってbuildしています。

vue

1// Top.vue 2<template> 3 <div> 4 aaaaa 5 </div> 6</template> 7 8<script> 9</script> 10 11<style lang="scss" scoped> 12div { 13 background-image: url('/assets/img/wall.png'); 14} 15</style>

階層は以下の通りです。
public
. ∟ assets
. ∟ img
. ∟ wall.png
. ∟ js
. ∟ (laravel-mixでビルドされたjs)
resources
. ∟ js
. ∟ components
. ∟ Top.vue

urlに「../」を使用するとnpm run devでエラーとなります。
足りない情報があれば仰ってくださいませ。
よろしくお願いいたします。

<追記>
少しずつ分かってきました。
lalaver-mixの仕様で、絶対パスの場合は記述したままコンパイルされる。
相対パスの場合だった場合、public/imagesフォルダに画像がコピーされ、
background-imageurlは、url(/images/example.png)のように/images始まりになります。

webpack.mix.jsに

javascript

1.options({ 2 processCssUrls: false 3})

を指定すればパスの変換はされないと書いてましたが、
単一コンポーネントの<style>内に書かれたパスはがっつり変換されていました。
※ちなみに通常のcssファイル内のパスは変換されなくなりました。

今はxamppで開発しておりまして、パスが「/」から始まってしまうと、htdocsからとなり
パスが合わないために画像が表示されなくなっています。

単一コンポーネントの<style>内に書かれたパスが変更されないようにする方法か、
変換後のパスの先頭「/」が付かないようにする方法があれば教えていただきたいです。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問に対する回答にはなりませんが、vue cliを導入し、プロジェクトを定義した上で、src以下で画像やcomponentをしっかりと管理した方が良いのではないでしょうか。

投稿2019/02/04 05:46

urbainleverrier

総合スコア200

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問