Я использую CMS для заполнения моего приложения Nuxt. js и объявляю URL API следующим образом.
в nuxt.config. js, для генерации динамич c маршрутов, у меня есть:
const apiUrl = 'http://xxx.xx.xx.xx:xxxx'
generate:{
routes: function () {
return axios.get(apiUrl + '/pages')
.then((res) => {
return res.data.map(page =>{
return page.slug
})
})
}
},
apollo: {
clientConfigs: {
default: {
httpEndpoint: apiUrl + '/graphql'
}
}
}
в хранилище / индекс. js, чтобы быть доступными в моем макете, страницах и компонентах, у меня есть:
export const state = () => ({
apiUrl: 'http://xxx.xx.xx.xx:xxxx'
})
Как видите, недостатком здесь является то, что const объявляется в двух разных местах, что может быть не таким уж большим делом, но мне кажется "неправильным". Кажется невозможным получить данные из хранилища в nuxt.config, js, и невозможно получить данные из nuxt.config. js в мои страницы / компоненты, если не импортировать их каждый раз. Нет ли более чистого способа установить это, или я все равно делаю это неправильно?
РЕДАКТИРОВАТЬ
Я мог бы также усложнить свой вопрос. В основном то, что мне нужно в моем макете, страницах и компонентах, это чистый apiURL. Это необходимо, чтобы быть первой частью URL, когда я загружаю изображения из API.
Я использую Apollo, поэтому я получаю все данные с этим, но URL-адреса изображений возвращаются как uploads/image_name.jpg
. Это означает, что на самом деле мне нужен httpEndpoint (из настроек apollo внутри nuxt.config. js), который будет доступен в моих компонентах как часть полного URL-адреса изображений.
Спасибо