npa*_*s18 4 ngx-translate ng-build angular7
我正在尝试部署一个 Angular 7 应用程序,该应用程序使用 ngx-translate 和 /dist/assets 文件夹中的翻译语言文件。我在 build.gradle 中指定了正确的 base href。部署后,我看到所有内容都加载了,除了返回错误代码 404(未找到)的语言文件。
我试过以几种不同的方式更改 angular.json 文件。我尝试更改 TranslateHttpLoader。似乎没有任何工作。我可以在 /dist 文件夹中看到包含所有语言文件的 i18n 文件夹。然而,它没有被引用。
在 app.module.ts
export function HttpLoaderFactory(httpClient: HttpClient) {
return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');
}
Run Code Online (Sandbox Code Playgroud)
在 angular.json 中
"assets": [
"src/favicon.ico",
"src/assets"
],
Run Code Online (Sandbox Code Playgroud)
但我最终在浏览器中收到此错误:
/assets/i18n/en.json 404 未找到
任何帮助,将不胜感激!
在Angular 9.0.4我面临同样的问题。
只有当我在路径中有一个点斜线前缀时,./assets/i18n/问题才会得到解决:
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/');
}
Run Code Online (Sandbox Code Playgroud)
小智 3
我遇到了和你一样的问题,我相信它与这个命令有关:
ng build --prod
Run Code Online (Sandbox Code Playgroud)
尝试使用这个命令:
ng build --base-href=/deployed_app_name/ --prod
Run Code Online (Sandbox Code Playgroud)
例如,如果您部署的应用程序名称是:stackoverflow
命令应如下所示:
ng build --base-href=/stackoverflow/ --prod
Run Code Online (Sandbox Code Playgroud)
在这里你将获得 i18n json 文件的正确路径
| 归档时间: |
|
| 查看次数: |
5796 次 |
| 最近记录: |