Angulaire 4 Img src ne fonctionne pas

j'ai un problème avec l'image src en angle 4. Il continue à me dire que l'image n'est pas trouvée.

structure des dossiers: Ici

j'utilise l'image dans mycomponent. Si dans mon composant j'insère directement

html prettyprint-override"><img src="img/myimage.png"

Il fonctionne très bien, mais j'ai vérifié le html et il crée un hachage. Mais mes images doivent être ajoutées dinamicalement au html car elles font partie d'une liste. Donc, si j'utilise:

<img src="{{imagePath}}">

ce qui est fondamentalement "img / myimage.png" ça ne fonctionne pas. Si j'utilise

<img [src]="imagePath">

Il est dit non trouvé (httttps://localhost/img/myimage.png). Pouvez-vous m'aider?

26
demandé sur Annk 2017-07-11 20:14:38

12 réponses

AngularJS

<img ng-src="{{imagePath}}">

Angulaire

<img [src]="imagePath">
31
répondu Yoav Schniederman 2018-05-29 16:36:16

copiez vos images dans le dossier des actifs. Angular ne peut accéder qu'aux fichiers statiques comme les images et les fichiers de configuration du dossier assets.

Essayez comme ceci: <img src="assets/img/myimage.png">

25
répondu CharanRoot 2018-05-23 14:51:41

Créer une image de dossier sous le dossier assets

<img src="assets/images/logo_poster.png">
6
répondu Amir Twito 2018-02-05 15:42:19

dans votre component Assignez une variable comme,

export class AppComponent {
  netImage:any = "../assets/network.jpg";
  title = 'app';
}

utilisez ce netImage dans votre src pour obtenir l'image, comme indiqué ci-dessous,

<figure class="figure">
  <img [src]="netImage" class="figure-img img-fluid rounded" alt="A generic square placeholder image with rounded corners in a figure.">
  <figcaption class="figure-caption">A caption for the above image.</figcaption>
</figure>
3
répondu Deepak Jha 2017-11-12 16:28:21

Eh bien, le problème était que, d'une certaine manière, le chemin n'était pas reconnu lorsqu'il était inséré dans src par une variable. J'ai dû créer une variable comme ceci:

chemin d'accès:tout = require("../../img / myImage.png");

et puis je peux l'utiliser dans src. Merci à tous!

2
répondu Annk 2017-07-12 14:15:41

@Annk vous pouvez faire une variable dans le __component.fichier ts

myImage: string ="http://example.com/path/image.png";

et à l'intérieur de l' __.composant.fichier html, vous pouvez utiliser l'une de ces 3 méthodes :

1 .

<div> <img src="{{myImage}}"> </div>

2 .

<div> <img [src]="myImage"/> </div>

3 .

<div> <img bind-src="myImage"/> </div>
2
répondu Fakh Ri 2018-01-12 14:56:22
<img src="images/no-record-found.png" width="50%" height="50%"/>

votre dossier images et votre index.html doit être dans le même répertoire(suivre la structure dir). il fonctionnera même après la construction!--3-->

Structure Du Répertoire

-src
    |-images
    |-index.html
    |-app 
1
répondu Kapil Thakkar 2018-02-05 11:43:12

Une observation importante sur la façon Angulaire 2, 2+ attribut liaisons travail.

Le problème [src]="imagePath" ne fonctionne pas alors que le do suivant:

  • <img src="img/myimage.png">
  • <img src={{imagePath}}>

Est en raison de votre déclaration contraignante, [src]="imagePath" est directement lié aux composants this.imagePath ou si elle fait partie d'un ngFor boucle, puis *each.imagePath.

cependant, sur les deux autres options de travail, soit vous liez une chaîne de caractères sur HTML, soit vous autorisez HTML à lier à une variable qui n'est pas encore définie.

HTML ne jettera aucune erreur si vous liez <img src=garbage*Th_i$.ngs>, peu importe la volonté angulaire.

Ma recommandation est de utilisez un inline-si dans le cas où la variable pourrait ne pas être définie, comme <img [src]="!!imagePath ? imagePath : 'urlString'">, qui peut être bien comme node.src = imagePath ? imagePath : 'something'.

éviter de se lier à d'éventuelles variables manquantes ou faire bon usage de *ngIf dans cet élément.

1
répondu Gabriel Balsa Cantú 2018-02-08 22:35:30

vous devez mentionner la largeur de l'image par défaut

 <img width="300" src="assets/company_logo.png">

cela fonctionne pour moi basé sur tous les autres moyens alternatifs.

0
répondu ionDev 2017-09-28 11:11:44

Vérifier dans votre.angulaire de la cli.json sous app - > assets: [] si vous avez inclus le dossier assets.

Ou peut-être quelque chose ici: https://github.com/angular/angular-cli/issues/2231 qui peut vous aider.

0
répondu chassis 2018-03-17 16:15:54

Vous devez utiliser ce code dans angulaire pour ajouter le chemin de l'image. si vos images sont dans le dossier assets, alors.

<img src="../assets/images/logo.png" id="banner-logo" alt="Landing Page"/>

si pas sous le dossier des actifs, alors vous pouvez utiliser ce code.

<img src="../images/logo.png" id="banner-logo" alt="Landing Page"/>
0
répondu Narayan Paswan 2018-07-24 21:55:46

Angular-cli inclut le dossier assets dans les options de compilation par défaut. J'ai eu ce problème quand le nom de mes images avait des espaces ou des tirets. Par exemple :

  • " mon-image-name.png "devrait être" myImageName.png'
  • ' mon nom d'image.png "devrait être" myImageName.png'

si vous mettez l'image dans le dossier assets/img, alors cette ligne de code devrait fonctionner dans vos templates:

<img [alt]="My image name" src="./assets/img/myImageName.png'">

Si le problème persiste il suffit de vérifier si votre Angulaires-cli fichier de configuration et assurez-vous que vos actifs dossier est ajouté dans les options de compilation.

0
répondu jmuhire 2018-08-13 10:27:29