J'essaie de placer le chemin d'accès relatif à l'une de mes images dans mon dossier de ressources dans une balise image src de mon application Angular2. J'ai défini la variable "fullImagePath" dans mon composant et l'ai utilisée dans mon modèle. J'ai essayé de nombreux chemins différents, mais je ne parviens pas à afficher mon image. Existe-t-il un chemin spécial dans Angular2 qui est toujours relatif à un dossier statique comme dans Django ?
Composant
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hero',
templateUrl: './hero.component.html',
styleUrls: ['./hero.component.css']
})
export class HeroComponent implements OnInit {
fullImagePath: string;
constructor() {
this.fullImagePath = '../../assets/images/therealdealportfoliohero.jpg'
}
ngOnInit() {
}
}
J'ai également placé l'image dans le même dossier que ce composant. Étant donné que le modèle et les css se trouvent dans le même dossier, je ne vois pas pourquoi un chemin relatif similaire vers l'image ne fonctionne pas. Voici le même composant avec l'image dans le même dossier.
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hero',
templateUrl: './hero.component.html',
styleUrls: ['./hero.component.css']
})
export class HeroComponent implements OnInit {
fullImagePath: string;
constructor() {
this.fullImagePath = './therealdealportfoliohero.jpg'
}
ngOnInit() {
}
}
html
<div class="row">
<div class="col-xs-12">
<img [src]="fullImagePath">
</div>
</div>
arbre des applications * J'ai laissé de côté le dossier des modules de nœuds pour gagner de la place.
├── README.md
├── angular-cli.json
├── e2e
│ ├── app.e2e-spec.ts
│ ├── app.po.ts
│ └── tsconfig.json
├── karma.conf.js
├── package.json
├── protractor.conf.js
├── src
│ ├── app
│ │ ├── app.component.css
│ │ ├── app.component.html
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ ├── hero
│ │ │ ├── hero.component.css
│ │ │ ├── hero.component.html
│ │ │ ├── hero.component.spec.ts
│ │ │ ├── hero.component.ts
│ │ │ └── portheropng.png
│ │ ├── index.ts
│ │ └── shared
│ │ └── index.ts
│ ├── assets
│ │ └── images
│ │ └── therealdealportfoliohero.jpg
│ ├── environments
│ │ ├── environment.dev.ts
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── polyfills.ts
│ ├── styles.css
│ ├── test.ts
│ ├── tsconfig.json
│ └── typings.d.ts
└── tslint.json
4 votes
Pourquoi voulez-vous utiliser un chemin relatif ? Ne pouvons-nous pas le configurer pour qu'il commence à partir de Root (c'est-à-dire
this.fullImagePath = '/assets/images/therealdealportfoliohero.jpg'
)1 votes
Malheureusement, ça n'a pas marché. Comment l'application sait-elle où se trouve la racine ? Est-ce la racine du projet, ou est-ce toujours un actif pour les fichiers statiques comme les css, les images et le javascript ?
0 votes
Oui, ça dépend vraiment de votre installation. Pour moi, je sépare les actifs de la partie code (en ayant des tâches gulp différentes pour eux) afin de savoir exactement où sont les actifs.
0 votes
Phwew, j'ai finalement réussi à le faire fonctionner Harry. Vous aviez raison d'utiliser le chemin complet. La raison pour laquelle cela ne fonctionnait pas était un problème que j'ai eu dans le passé en utilisant Photoshop, et en n'exportant pas les images correctement. Argghhh Photoshoppppp ! En tout cas, merci Harry !