contentful.js 使用 Axios 就是使用 localhost
contentful.js using Axios is using localhost
这有点烦人!我正在尝试将 Contentful SDK 用于 Angular Universal。
在此处的文档中:
https://github.com/contentful/contentful.js/blob/master/ADVANCED.md#angular-universal
并根据
https://github.com/patrickhousley/ngx-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,
});
}
问题是它没有调用 cdn: https://cdn.contentful.com instead it calls my localhost: http://localhost:4200 这真的很令人沮丧。
我不是唯一遇到这个问题的人,但我看不到任何人解决了这个问题。
我发现了另一个关于堆栈溢出的问题,他们决定直接使用 HttpClient 调用 API 我遇到的问题是链接条目显示为单独的对象,这样不好。
当我深入研究 SDK 时,我发现了一些我可以设置的有趣选项,即 host
和 basePath
,但设置这些没有任何作用。
然后我找到了一个 proxy
配置,它期望类型 AxiosProxyConfig
也有一个 host
参数。
我设置了所有这些:
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,
});
}
而且它没有任何区别。
有谁知道如何解决这个问题?
这是 ngx-axios-adapter
库的一个已知问题。这是一个解决方法:https://github.com/patrickhousley/ngx-axios-adapter/issues/13#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);
}
});
这有点烦人!我正在尝试将 Contentful SDK 用于 Angular Universal。 在此处的文档中:
https://github.com/contentful/contentful.js/blob/master/ADVANCED.md#angular-universal
并根据
https://github.com/patrickhousley/ngx-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,
});
}
问题是它没有调用 cdn: https://cdn.contentful.com instead it calls my localhost: http://localhost:4200 这真的很令人沮丧。 我不是唯一遇到这个问题的人,但我看不到任何人解决了这个问题。
我发现了另一个关于堆栈溢出的问题,他们决定直接使用 HttpClient 调用 API 我遇到的问题是链接条目显示为单独的对象,这样不好。
当我深入研究 SDK 时,我发现了一些我可以设置的有趣选项,即 host
和 basePath
,但设置这些没有任何作用。
然后我找到了一个 proxy
配置,它期望类型 AxiosProxyConfig
也有一个 host
参数。
我设置了所有这些:
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,
});
}
而且它没有任何区别。 有谁知道如何解决这个问题?
这是 ngx-axios-adapter
库的一个已知问题。这是一个解决方法:https://github.com/patrickhousley/ngx-axios-adapter/issues/13#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); } });