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

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

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

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

Q&A

0回答

1657閲覧

Vueとaxiosで、サーバーから画像を読み込みたい

taku__

総合スコア0

Vue.js

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

0グッド

0クリップ

投稿2021/10/16 15:56

前提・実現したいこと

Vue.jsを使って、実装はフロントエンドのみのシステムを作っています。
画面でAを選択されたら、Aをの画像。Bを選択されたらBの画像というように
画面から選択された値によって、違う画像をサーバーから読み込みたいです。

以前同じことをjsで試したのですが、下記のようなことをVueではできないのでしょうか。

js

1const image = new Image(); 2image.src = '../img/sample.png'; 3image.onload = () => { 4// 処理 5}

発生している問題・エラーメッセージ

GET http://localhost:8081/assets/sample.png 404 (Not Found)

http://localhost:8081/assets/sample.pngにアクセスしましたが、画像はありませんでした。

該当のソースコード

vue

1axios 2 .get('../assets/sample.png') 3 .then(function(response){ 4 // 処理 5 }.bind(this)) 6 .catch(function(error){ 7 // 処理 8 })

試したこと

1,プロジェクトファイル内のあらゆる場所にファイルを置き、読み込みを試しましたが解決しませんでした。パスの間違い以前の問題のようです。

2,buildをして該当のファイルがdistにあるか確認をしましたが、使いたい画像はありませんでした。

3,同じ.vueのtemplateの中で

vue

1<v-img :src="require('../assets/sample.png')" />

をしたところ、画像が表示されました。
この状態でbuildをすると、該当のファイルがdist/imgに存在しました。

ただのjsファイルと違い、Vueはビルドが必要なので、
ビルド後のファイルに含まれるようにしなければならない気はするのですが、
どうすれば含まれるのか、後から読み込むことが出来るのか分からず途方に暮れています。

補足情報(FW/ツールのバージョンなど)

Vueにaxiosについての記載がありましたが、urlがhttp://からでした。
https://jp.vuejs.org/v2/cookbook/using-axios-to-consume-apis.html
画像ファイルは別のサーバーで用意しなくてはならないでしょうか。

これはJSONなのですが、
https://qiita.com/syui/items/385de29cea208340e65e
相対パスで取得できているように見えます。このようなことがしたいです。

プログラミングやサーバーの知識が不足しています。
わかりにくい表現、間違った語句の使い方をしているかもしれません。
よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問