不能';t从angular应用程序加载assets文件夹中的.json和images文件

不能';t从angular应用程序加载assets文件夹中的.json和images文件,angular,Angular,我发送了一个请求来加载i18n.json文件和“assets”文件夹中的一些图像,但只是收到404未找到。我是否需要向webpack.config.json添加任何内容?如果需要,是怎样的 注意:我没有使用Angular cli,因此我没有Angular.json用于从根目录配置资产。 translationsUrl = '/assets/i18n/header'; loadTranslations(locale: string) { return this.http.get(

我发送了一个请求来加载i18n.json文件和“assets”文件夹中的一些图像,但只是收到404未找到。我是否需要向webpack.config.json添加任何内容?如果需要,是怎样的

注意:我没有使用Angular cli,因此我没有Angular.json用于从根目录配置资产。

translationsUrl = '/assets/i18n/header';

loadTranslations(locale: string) {
        return this.http.get(`${this.translationsUrl}/${locale}.json`).subscribe((data: any) => {
        });
}


您是否尝试在angular.json中指定它,如下所示:

"assets": [
          ...
          "src/assets/i18n/header/vn.json",
          "src/assets/i18n/header/en.json",
        ]

您不能这样加载json,因为它无法工作。您需要将其设置为承诺加载该文件。我忘了原因。但是,去年我用这个方法解决了这个问题

我写了一篇关于它的文章-

尝试:

从'@angular/core'导入{Injectable};
从'@angular/common/http'导入{HttpClient};
@可注射()
导出类TranslateService{
translateObject:any={};
构造函数(私有http:HttpClient){}
loadTranslations(lang:string='en'):Promise{
返回新承诺((解决、拒绝)=>{
const langPath=`assets/i18n/header/${lang}.json`;
this.http.get(langPath.subscribe)(
翻译=>{
this.translateObject=翻译;
解析(this.translateObject);
},
错误=>{
this.translateObject={};
解析(this.translateObject);
}
);
});
}
}
然后添加一个
translate
管道:

从'@angular/core'导入{Pipe,PipeTransform};
从'src/app/shared/services/translate.service'导入{TranslateService};
@烟斗({
名称:'翻译',
纯:假
})
导出类TranslatePipe实现PipeTransform{
构造函数(私有翻译:翻译服务){}
变换(关键点:任意):任意{
返回此.translate.translateObject[key]| | key;
}
}

我从无到有创建了此应用程序,并且我没有使用angular cli使用此模块,因为我没有使用angular cli创建此应用程序,所以我没有angular.json来添加这些配置。我现在能做什么?谢谢你的帮助。我不知道我们是否需要
translate
pipe?。当我尝试使用您的指南时,我只是在
loadTranslations
中添加了承诺,但它仍然不起作用。我认为您犯了一些错误。如果你遵循文章中的指导原则,我想它肯定会100%运行,因为我已经应用了很多次。你能分享你的演示吗?是的。。。因为我没有使用angular cli生成我的应用程序,所以我没有angular.json文件来添加这个“资产”:[“src/favicon.ico”,“src/assets”],“`这是导致我的问题的根本原因吗?是的。我认为是这样。是否可以使用类似点的
。/../assets
更改路径,然后重试。如果它可以工作,那么在AOT模式下再次构建,以确保它可以用于生产。