Для локализации использую ngx-переводчик. Когда я пытаюсь прочитать json-файлы с локализацией, хранящейся в локальной папке, я получаю сообщение об ошибке HttpErrorResponse {headers: HttpHeaders, status: 404, statusText: «Not Found», url: «http: /host.com/api/ assets / i18n / en.json ", ok: false,…}. Я думаю, что эта проблема в Interceptor, который я использую в своем приложении.
// app.module.ts
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, 'assets/i18n/', '.json');
}
Как отключить перехватчик в этой функции? Я пытался установить заголовок как X-Skip-Interceptor, но это не помогло.





//Read your local json data like below
private _productURL = 'api/products/products.json';
getProducts(): Observable<any> {
return this._http.get(this._productURL).map((response : Response) => <any> response.json())
.do(data =>console.info(JSON.stringify(data))).catch(this.handleError);
}
Вы можете использовать HttpBackend
When injected, HttpBackend dispatches requests directly to the backend, without going through the interceptor chain.
В вашем app.module.ts передайте HttpBackend как deps, а не HttpClient
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (HttpLoaderFactory),
deps: [HttpBackend],
},
}),
И измените HttpLoaderFactory, как показано ниже
export function HttpLoaderFactory(handler: HttpBackend) {
const http = new HttpClient(handler);
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
Это легко исправить. Вы можете просто пропустить файл перевода, как и раньше.
function MSALAngularConfigFactory(): MsalAngularConfiguration {
return {
popUp: false,
consentScopes: [
environment.backendConfig.resourceScope
],
protectedResourceMap: [
[environment.backendConfig.url, [environment.backendConfig.resourceScope]],
['./assets/i18n/*.json', null]
],
};
}
Мы устанавливаем это в protectedResourceMap. Если вы получаете сообщение об ошибке «ОШИБКА в src / app / app.module.ts: 47: 30 - ошибка TS2322: тип« null »не может быть назначен типу« string [] »». используйте as any.
protectedResourceMap: [
[environment.backendConfig.url, [environment.backendConfig.resourceScope]],
['./assets/i18n/*.json', null as any]
]
И на всякий случай, если ваши изображения не загружаются на ваш сайт, это может быть проблема с вашим CSS. Измените стили background с background: url(../../assets/img/background.svg) на background: url(/assets/img/background.svg). Вы можете прочитать больше в этом Проблема с GitHub.