У меня есть путь в серверной части, где я сохраняю свои изображения. Я могу получить путь от Монго и воспроизвести его в угловом формате, но когда я использую тег с src bind, он не показывает изображение и никаких ошибок:
Путь внутри компонента:
this.profileService.getImg().subscribe(res => this.imagePath = res['img']);
Возвращение журнала консоли:
console.log(this.imagePath);
http://localhost:3000/avatars/5db84cdf4c6efe073864f9e7.jpeg
HTML-тег:
<img [src]="imagePath">
Я пробовал несколько способов, которые я нашел в других сообщениях, но не смог заставить его работать. Любая идея о том, что происходит и как я могу решить эту проблему?
Обновления и более подробная информация
На стороне сервера я таким образом возвращаю путь из Монго:
router.get('/:id', (req, res, next) => {
Avatar.getAvatarById(req.params.id, (err, avatar) => {
if(err) throw err;
if(!avatar){
return res.json({success: false, msg: 'No avatars found'});
}
res.json({
success: true,
avatar: avatar
});
});
});
Где Avatar.getAvatarById - это:
module.exports.getAvatarById = function(id, callback){
const query = { avatar: {$regex: ".*"+id+".*" }}
Avatar.findOne(query, callback);
}
И я выставляю путь аватаров так:
app.use('/avatars', express.static('avatars'));
Когда я пытаюсь получить доступ к пути, нажав http://localhost:3000/avatars/5db84cdf4c6efe073864f9e7.jpeg в браузере, он возвращает json вместо рендеринга изображения.
{
"success":true,
"avatar": {
"_id":"5dc17fc9f383424158c59754",
"avatar":"http://localhost:3000/avatars/5db84cdf4c6efe073864f9e7.jpeg","__v":0
}
}
Также пытался преодолеть безопасность с помощью bypassSecurityTrustResourceUrl и использовать *ngЕсли отобразить, когда URL-адрес есть.
this.photoUrl = this.sanitizer.bypassSecurityTrustUrl(res['avatar']['avatar']);
<img *ngIf="photoUrl" [src]="photoUrl">
Он не возвращает никаких ошибок и стиль не отображает изображение.
Если я попытаюсь, нажав путь внутри bypassSecurityTrustUrl
функция для проверки и удаления * ngIf, она возвращает:
null:1 GET http://localhost:4200/null 404 (Not Found)