Nuxt.jsプロジェクトにaxiosモジュールがあります。
baseUrl(API用)もlocalhost:4040/api
クライアントがポート3000で実行されている間。
APIで画像データを取得すると、 '/ upload/1.png'のようなAPIサーバーへの相対パスが返されます{ "src":"/upload/1.png" }
だから、axios baseUrlを取得し、それを連結して画像へのフルパスを作成する必要があります。
ハードコーディング以外の方法はありますか?
nuxt.config.jsで定義した場合:
axios: {
baseURL:"localhost:4040/api/"
}
イメージに対して行う必要があるのは、次のようにポイントすることだけです。
:src="`${$axios.defaults.baseURL}upload/1.png`"
このようなaxios設定にアクセスして、APIベースURLを取得できます。
this.$axios.defaults.baseURL
同様の問題がありました。私の解決手順は次のとおりです。フォルダー.nuxtを削除+ブラウザーチェンジャーでキャッシュを削除
axios: {
baseURL: 'http: // localhost: 8080/api'
}
期待どおりに動作します。その前に、コミュニティチュートリアルのような多くの方法を試しましたが、効果的ではありませんでした。
誰かがaxios baseURLをドメイン非依存にする方法を知りたい場合:
これを簡単に実現できます。
axios: {
baseURL: '/'
}
localhost:3000/api
およびany-domain.com/api
誰かがaxiosを呼び出すつもりなら、dispatch store/index.js経由で呼び出します
export const actions = {
// nuxt server Init only works on store/index.js
async nuxtServerInit ({dispatch}) {
let response = await dispatch ('member / list', {page: 1});
console.log (response);
}
}
モジュールファイルmember.js
async list ({commit}, payload) {
return await this. $ axios. $ post ('/ user / list', payload) .then ((response) => {
commit ('fetchSuccess', response);
return response;
})
.catch (error => {
return error.response.data;
});
},
axios apiを含むnuxt.config.js構成ファイル
axios: {
baseURL: 'http://localhost:9020/api'
},
答えが適切ではない場合は申し訳ありませんが、誰かがこれがそれらを説明することを期待する必要がある場合
axiosのベースURLを設定できます
axios.defaults.baseURL = ' https://api.example.com/ ';
次回、このURLにAPIを呼び出すために必要なパスが追加されます
詳細については、下のリンクから見ることができます