我想使我的组件可移植到其他项目,因此我想将所有图像包含在component文件夹中,并让编译器来处理。
我找到了我都不喜欢的不同解决方案:
Is it mandatory to keep images in assets folder in Angular 2?
我不喜欢这种方法,因为它需要大量的手工工作。
Angular 2 img src in a relative path
这种方法会创建很多额外的变量。
我的目标是做某事。像这样
A)与其他所有图像一样引用该图像:
<img *ngIf="images[sensor.model]" [src]="'assets/images/' + images[sensor.model]"/>
B)配置编译器以将映像从所有文件夹移动到资产,例如在我使用gulp的旧AngularJs项目中,这可以通过遍历来完成:
gulp.task('images', function () {
return gulp.src([paths.src + '/**/*.{jpg,jpeg,png,svg,gif}', '!'+'/**/*/*-sprite*'])
.pipe($.rename({dirname: ''}))
.pipe(gulp.dest(paths.dist + '/assets/images/'));
});
可以很容易地实现,仅当图像更改以进行更快的编译时才复制图像:
gulp.watch(paths.src + '/**/*.{jpg,jpeg,png,svg,gif}', ['images']);
是否可以将编译器设置为搜索图像并将其移动到assets/images
上,这样会有不利影响(我读到资产是静态的,可以更快地进行编译)。