使用Axios的contentful.js使用的是localhost。

问题描述 投票:0回答:1

这是一个有点烦人的问题!我正在尝试使用Angular Universal的Contentful SDK。我正在尝试使用Contentful SDK for Angular Universal.在这里的文档中。

https:/github.comcontentfulcontentful.jsblobmasterADVANCED.md#angular-universal。

并根据

https:/github.compatrickhousleyngx-axios-adapter。

我已经安装了 npm install @ngx-axios-adapter/core 然后我把我的服务调整成这样。

constructor(private readonly axiosAdapter: AxiosAngularAdapterService) {
    this.cdaClient = createClient({
        space: environment.space,
        accessToken: environment.cdaAccessToken,
        // pass the adapter to contentful
        adapter: this.axiosAdapter.adapter,
    });
}

问题是它没有调用... 加拿大籍: https:/cdn.contentful.com 而不是调用我的localhost.http/localhost:4200。http:/localhost:4200 这是非常令人沮丧的.我不是唯一一个有这个问题的人,但我看不到任何人已经解决了这个问题。

我在stack overflow上发现了另一个问题,他们决定直接使用以下方法调用API HttpClient 我遇到的问题是,链接的条目会作为一个单独的对象出现,这可不好。

当我深入研究SDK时,我发现了一些有趣的选项,我可以设置,即 hostbasePath但设置这些都没有用,然后我找到了一个 proxy 配置,它期望类型 AxiosProxyConfig 其中也有 host paramter.我设置了所有这些。

constructor(private readonly axiosAdapter: AxiosAngularAdapterService) {
    this.cdaClient = createClient({
        space: environment.space,
        accessToken: environment.cdaAccessToken,
        host: 'https://cdn.contentful.com',
        basePath: 'something',
        proxy: {
            host: 'https://cdn.contentful.com',
        },
        // pass the adapter to contentful
        adapter: this.axiosAdapter.adapter,
    });
}

但没有任何区别,有人知道如何解决这个问题吗?

angular angular-universal contentful
1个回答
0
投票

这是一个已知的问题,与 ngx-axios-adapter 库。这里有一个变通方法。https:/github.compatrickhousleyngx-axios-adapterissues13#issuecomment-627326291。

this.client = createClient({
  space: appConfig.contentful.spaceId,
  accessToken: appConfig.contentful.token,
  adapter: (config) => {
    config.url = config.baseURL + '/' + config.url; // fix for Angular 9
    return this.axiosAdapter.adapter(config);
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.