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-image
のurl
は、url(/images/example.png)のように/images
始まりになります。
webpack.mix.jsに
javascript
1.options({ 2 processCssUrls: false 3})
を指定すればパスの変換はされないと書いてましたが、
単一コンポーネントの<style>内に書かれたパスはがっつり変換されていました。
※ちなみに通常のcssファイル内のパスは変換されなくなりました。
今はxamppで開発しておりまして、パスが「/」から始まってしまうと、htdocsからとなり
パスが合わないために画像が表示されなくなっています。
単一コンポーネントの<style>内に書かれたパスが変更されないようにする方法か、
変換後のパスの先頭「/」が付かないようにする方法があれば教えていただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。