私もこの問題にぶつかり、ほとんどの賛成の答えは両方とも機能するようですが、小さな問題があります。webpackはブラウザコンソールにエラーをスローします(エラー:webpackContextResolveでモジュール './undefined'が見つかりません)。これはあまり良くありません。
だから私はそれを少し違った方法で解決しました。requireステートメント内の変数に関する全体的な問題は、requireステートメントがバンドル中に実行され、そのステートメント内の変数がブラウザーでのアプリの実行中にのみ表示されることです。そのため、コンパイル中にその変数が存在しないため、webpackは必要なイメージをどちらの方法でも未定義と見なします。
私がしたことは、ランダムな画像をrequireステートメントに配置し、その画像をcssに非表示にして、誰にも表示されないようにすることです。
<img class="user-image-svg" :class="[this.hidden? 'hidden' : '']" :src="userAvatar" alt />
data() {
return {
userAvatar: require('@/assets/avatar1.svg'),
hidden: true
}
}
.hidden {display: none}
画像はVuexを介してデータベースからの情報の一部として提供され、計算されたものとしてコンポーネントにマッピングされます
computed: {
user() {
return this.$store.state.auth.user;
}
}
したがって、この情報が利用可能になったら、最初の画像を実際の画像に交換します
watch: {
user(userData) {
this.userAvatar = require(`@/assets/${userData.avatar}`);
this.hidden = false;
}
}
@/assets/
+ items.image)"高さ= "200pxの"> </ V-IMG>は`この1つはまた、問題を解決した