Vue.js nuxt中的Env变量

Vue.js nuxt中的Env变量,vue.js,nuxt.js,Vue.js,Nuxt.js,我正在使用axios的asyncData从静态文件夹中获取一个local.json文件。我现在只想在本地获取它,因为我在等待构建API时添加了所有方法 要使用async,我需要完整的路径和URL,所以我需要一个env变量,但是我的服务器上不断出现403,或者出现随机错误。我需要路径是我的axios调用中承载URL的任何内容 URL需要是动态的,因为我使用的是gitlab CI,并且URL根据我所在的分支而变化,所以我无法设置开发、生产URL 如果我用localIP替换context.env.ba

我正在使用axios的asyncData从静态文件夹中获取一个local.json文件。我现在只想在本地获取它,因为我在等待构建API时添加了所有方法

要使用async,我需要完整的路径和URL,所以我需要一个env变量,但是我的服务器上不断出现403,或者出现随机错误。我需要路径是我的axios调用中承载URL的任何内容

URL需要是动态的,因为我使用的是gitlab CI,并且URL根据我所在的分支而变化,所以我无法设置开发、生产URL

如果我用localIP替换context.env.baseUrl,它可以工作,但我需要该URL作为我的托管URL。我需要这是一个变量,因为我使用不同URL的gitlab

异步数据

nuxt.config.js


您可以创建一个Axis实例并设置一个基本URL以避免麻烦

const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
});

请参阅:

我知道的许多方法中最简单的一种就是使用。许多axios配置难点都是通过该模块解决的,而不是使用独立的axios软件包。 然后在您的nuxt.config.js中

这样加上这个

axios: {
  baseURL: () => {
    if (process.env.NODE_ENV !== "production") {
      return 'localhost:5000/api/';    
    }
    return https://www.example.com/api/;
  }
}
NUXT页面中的用法


如果您想使用同一项目中存在的静态文件,那么只需导入/要求它,而不是使用axios。见下面的例子

<script>
export default {
  asyncData() {
    const servers = require('@/static/local.json')

    return {
      servers
    }
  }
}
</script>

基本url不是某个域…它是服务器的域它是onSo基本url需要是动态的,但它是服务器的本地检查这里一旦我想异步它,虽然它在服务器上呈现用于SEO,那么如果我使用同步数据,我将失去对它的访问权限?example.com需要是动态的,尽管我使用的是gitlab CI
axios: {
  baseURL: () => {
    if (process.env.NODE_ENV !== "production") {
      return 'localhost:5000/api/';    
    }
    return https://www.example.com/api/;
  }
}
async asyncData({ $axios }) {
    try {
      let response = await $axios.get("/your-api-route");
      return response;
    } catch (err) {
      console.log(err);
    }
  }
<script>
export default {
  asyncData() {
    const servers = require('@/static/local.json')

    return {
      servers
    }
  }
}
</script>