J'ai un module axios dans mon projet Nuxt.js.
J'ai également configuré mon baseUrl (pour l'API) dans localhost:4040/api
pendant que mon client fonctionne sur le port 3000.
Lorsque je récupère des données d'image dans l'API, il renvoie un chemin relatif vers le serveur api qui est comme '/upload/1.png'{ "src":"/upload/1.png" }
Donc, j'ai besoin d'obtenir l'axios baseUrl et de le concaténer pour faire le chemin complet vers l'image.
Existe-t-il un autre moyen de procéder que de coder en dur?
Si dans nuxt.config.js vous avez défini:
axios: {
baseURL:"localhost:4040/api/"
}
Tout ce que vous devez faire pour l'image est de la pointer comme suit:
:src="`${$axios.defaults.baseURL}upload/1.png`"
Vous pouvez accéder à la configuration axios comme ceci pour obtenir l'URL de votre base api:
this.$axios.defaults.baseURL
J'avais un problème similaire. Mon étape de résolution est la suivante: Supprimer le dossier .nuxt + supprimer le cache dans le navigateur Changer
axios: {
baseURL: 'http: // localhost: 8080/api'
}
Cela fonctionne comme prévu. Avant cela, j'ai essayé de nombreuses façons, comme les tutoriels communautaires, mais pas efficace.
Si quelqu'un se demande comment rendre un domaine axios indépendant du domaineURL:
Voici comment cela peut être réalisé simplement:
axios: {
baseURL: '/'
}
Cela fonctionnera sur localhost:3000/api
ainsi que le any-domain.com/api
Si quelqu'un a l'intention d'appeler axios, appelez-le via 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);
}
}
fichier de module 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;
});
},
fichier nuxt.config.js config avec axios api
axios: {
baseURL: 'http://localhost:9020/api'
},
Désolé si la réponse n'est pas appropriée mais quelqu'un devra espérer que cela les explique
vous pouvez définir l'URL de base pour axios
axios.defaults.baseURL = ' https://api.example.com/ ';
la prochaine fois, cette URL sera ajoutée avec le chemin d'accès requis pour appeler l'api
pour plus de détails, vous pouvez voir le lien ci-dessous