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

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

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

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

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1735閲覧

Vue.jsで'npm run build'した後にプロジェクトに追加した画像の参照について

mako_1999

総合スコア1

Vue.js

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

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2022/03/04 11:59

フロントVue.js、バックエンドDjangoでwebアプリを構築しています。
Vue.jsで本番環境用に'npm run build'した後にディレクトリに追加された画像ファイルが表示できません。

具体的には
1.vue側からアカウント作成のために会員IDとpassを入力しそのデータをdjangoの会員登録のapiに投げる
2.django側で会員情報をDBに保存し、会員IDを元に2段階認証用のQRコードを生成する(QRコードはプロジェクトのディレクトリに格納される)
3.会員登録とQRコード生成ができたらvue側がQRコードを表示するための画面に遷移する
4.vue側から(2)で生成されたQRコードを取ってきて表示
という流れです。

いざビルドして、会員登録を行ってもQRコードが表示されず困っております。ちなみに表示されていない状態からもう一度ビルドしてリロードするとQRコードが表示されるので、ビルド時に画像が含まれていないことが原因かなと思っています。この状態だと会員登録の度にビルドしなおさないといけないので、そうではなくビルド後に画像を追加してもちゃんと表示できるようにしたいです。
画像はvueファイルの<template>内でこのように参照しています。

<img :src="require(`--file_path--/img/qr_code_${this.num}.png`)">

どのうにすればこの問題を回避できるのでしょうか。皆様の知恵をお貸しください。よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

The public Folder
https://cli.vuejs.org/guide/html-and-static-assets.html#the-public-folder

処理の流れ的にwebpackを通過させられないため、publicフォルダーに配置して絶対パスで参照するとか、参考になりますでしょうか。

投稿2022/03/04 15:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mako_1999

2022/03/05 01:15

ご回答ありがとうございます。ご回答いただいた内容で解決できそうです! ちなみにビルドを行うとdistディレクトリ内にpublic内の画像ファイルがコピーされるという感じかと思いますが、ビルド後、Django側からのQRコードの置き場所はpublicディレクトリとdistディレクトリのどちらに置けばよいのでしょうか。ご回答いただけると助かります。よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2022/03/05 01:30

> ちなみにビルドを行うとdistディレクトリ内にpublic内の画像ファイルがコピーされるという感じかと思いますが、 私もその認識です。 > ビルド後、Django側からのQRコードの置き場所はpublicディレクトリとdistディレクトリのどちらに置けばよいのでしょうか。 publicディレクトリはソースコードということですよね(基本的にここにQRコードは存在しないことになりますよね。QRコードはVue.jsをビルドのし直しせずに使いたいものですので)。 distディレクトリは実際の運用環境に配置するものですよね。 Django側からはdistディレクトリの方にQRコードの画像を作成するイメージになると思います。 (ビルドして運用環境のサーバーに配置すると思いますので、Django側はそのあたりも考慮する必要があるのかと思います・・すみません、サーバー構成などを把握しないまま書いています・・)
mako_1999

2022/03/05 08:17

なるほど、ありがとうございます! distディレクトリにQRコードを置いて試してみます。 結果わかりましたらご報告させてもらいます。ご回答ありがとうございます!
退会済みユーザー

退会済みユーザー

2022/03/06 04:51

! 解決済になっていたようですね。 運用直前になって気づいた問題だとしたら、自分だったら嫌だなと思って、気になっていました。 解決したようで良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問