sonicyard

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

项目中使用了axios异步代理,

export default {
  async asyncData({ $axios }) {
    const BeersList = await $axios.$get("/api/beer/?key=beer");
    return { BeersList };
  },
};

nuxt.config.js

export default {
  axios: {
    proxy: true,
  },
  proxy: {
    '/api/beer/': {
      target: 'https://api.nuxtjs.dev/beers',
      pathRewrite: {
        '^/api/beer/': ''
      }
    },
  },
  target: 'static'
}

使用静态生成时

npm run generate

出现Error: connect ECONNREFUSED 127.0.0.1:3000这样一个错误,

 

 

 原因为@nuxtjs/axios代理只用于服务端,纯静态打包就会出这个错误,详细原因不写了。

解决方案:

1、nuxt.config.js注释axios代理;

export default {
/********
  axios: {
    proxy: true,
  },
  proxy: {
    '/api/beer/': {
      target: 'https://api.nuxtjs.dev/beers',
      pathRewrite: {
        '^/api/beer/': ''
      }
    },
  },
*********/
  target: 'static'
}

 

2、asyncData axios请求改为原始api接口地址

export default {
  async asyncData({ $axios }) {
    const BeersList = await $axios.$get("https://api.nuxtjs.dev/beers");
    return { BeersList };
  },
};

这时打包就没错误了

 

posted on 2021-04-30 16:55  sonicyard  阅读(4107)  评论(0)    收藏  举报