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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Vite

Viteは、フロントエンド向けのビルドツール。JavaScriptはもちろん、さまざまな環境での利用が可能です。ES Modulesを利用することで高速ビルドを実現でき、ファイルの変更時も変更箇所のみを更新できるといった特徴があります。

Q&A

解決済

1回答

704閲覧

【Docker環境+Laravel10+vite】SCSSで指定した画像が表示されない

chirizoo

総合スコア6

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Vite

Viteは、フロントエンド向けのビルドツール。JavaScriptはもちろん、さまざまな環境での利用が可能です。ES Modulesを利用することで高速ビルドを実現でき、ファイルの変更時も変更箇所のみを更新できるといった特徴があります。

0グッド

0クリップ

投稿2024/02/21 05:36

実現したいこと

SCSSで指定した背景画像を開発環境(http://localhost/)で表示したい。

発生している問題・分からないこと

DockerにてLaravel10(vite)環境を構築しています。
SCSSで指定したbackground-imageが表示されず。。
はじめてvite環境を触るのでご知見お借りしたいです。

■事象
SCSSでbackground-imageにpublic/img配下に設置した画像を指定しました。

.icn-selectbox { background-image: url(/img/arrow-selectbox.svg); }

ブラウザで確認したところ、指定した画像のパスが「http://localhost:5173/img/arrow-selectbox.svg」となっていました。
イメージ説明
http://localhost:5173を参照するのではなくhttp://localhostを参照するように何かしらしなければならないのか、もしくはhttp://localhost:5173を参照していること自体はあっているのかがわからず、対応方法が不明です。

イメージ説明

調べるとvite.config.jsのserverのオプションでhostという記載を多く見かけたのですが、解決できませんでした。

ご教示いただけますと幸いです。
不足している情報等ございましたらお申し付けください。
よろしくお願いいたします。

該当のソースコード

SCSS

1.selectbox { background-image: url(/img/arrow-selectbox.svg);}

vite.config.js

1import { defineConfig } from 'vite'; 2import laravel from 'laravel-vite-plugin'; 3 4export default defineConfig({ 5 plugins: [ 6 laravel({ 7 input: [ 8 'resources/css/app.css', 9 'resources/scss/app.scss', 10 'resources/js/app.js', 11 ], 12 refresh: true, 13 }), 14 ], 15 server: { 16 hmr: { 17 host: 'localhost', 18 }, 19 watch: { 20 usePolling: true, 21 }, 22 }, 23}); 24

docker

1services: 2 app: 3 container_name: app 4 build: ./docker/php 5 volumes: 6 - .:/var/www 7 ports: 8 - 5173:5173 9 nginx: 10 image: nginx 11 container_name: nginx 12 ports: 13 - 80:80 14 volumes: 15 - .:/var/www 16 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 17 working_dir: /var/www 18 depends_on: 19 - app 20 db: 21 platform: linux/x86_64 22 image: mysql:5.7 23 container_name: db 24 environment: 25 MYSQL_ROOT_PASSWORD: root 26 MYSQL_DATABASE: database 27 MYSQL_USER: db-user 28 MYSQL_PASSWORD: db-pass 29 TZ: 'Asia/Tokyo' 30 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 31 volumes: 32 - ./docker/db/data:/var/lib/mysql 33 - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf 34 - ./docker/db/sql:/docker-entrypoint-initdb.d 35 ports: 36 - 3306:3306 37 phpmyadmin: 38 image: phpmyadmin/phpmyadmin 39 environment: 40 - PMA_ARBITRARY=1 41 - PMA_HOST=mysql 42 links: 43 - db 44 ports: 45 - 8081:80 46 volumes: 47 - /sessions 48volumes: 49 mysql-data:
docker-compose.yml app └ public  └ img   └ arrow-selectbox.svg └ resources  └ scss   └ common.scss └ vite.config.js

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果
  • 画像の指定を相対パスに変更→ルートは変わらないので意味なしでした
  • viteの設定ファイルのserverにオプションを追加→変わらずでした

補足

[docker環境]
・nginx
・mysql

※docker-compose.ymlの内容も記載いたします。

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

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

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

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

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

guest

回答1

0

自己解決

resourcesにimgを配置することで解決しました。

投稿2024/02/22 05:28

chirizoo

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問