vue.jsでbuildした成果物をサーバに展開して表示すると、画面に埋め込んだ画像が表示されません。
なお、webpack-dev-serverで表示した際には正常にされています。
実装
画像は以下に設置しています。
bash
1$ ls src/assets/images/ 2logo.png
画像を表示しているページは以下のような形です。
<template> <div> <img :src="logo"> </div> </template> <script> import logo from "@/assets/images/logo.png"; export default { data() { return { logo: logo }; } } </script>
webpack.config.jsには以下設定をしています。
const path = require('path'); module.exports = { ... resolve: { ... alias: { '@': path.resolve(__dirname, 'src') } } }
現象
上記をビルドしブラウザで表示してみると、画像のパスが以下になっており、404になってしまっています。
/login/assets/no_image.a7001ee8213e668bebec5372cfd309f1.png
本来期待するパスとしては以下の形かと思われます。(実際にURLを書き換えるとブラウザで表示できます。)
/assets/no_image.a7001ee8213e668bebec5372cfd309f1.png
なんらかの設定で login
の文字が差し込まれてしまっている?んだと思われますが、ソースや設定を攫ってみても原因がわかりませんでした。
ご存知の方がいらっしゃいましたらアドバイスお願いします。
あなたの回答
tips
プレビュー