Angular 4 img src не знайдено


76

У мене проблема з джерелом зображення із кутовим 4. Це постійно говорить мені, що зображення не знайдено.

Структура папки:

app_folder/
app_component/
  - my_componenet
  - image_folder/
      - myimage

Я використовую зображення в mycomponent. Якщо є mycomponent, я вставляю його безпосередньо з:

<img src="img/myimage.png"

Це працює нормально, але я перевірив html, і він створює хеш. Але мої зображення потрібно динамічно додавати до html, оскільки вони є частиною списку. Отже, якщо я використовую:

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

що в основному img/myimage.pngне працює. Якщо я використовую:

<img [src]="imagePath">

Це говорить NOT FOUND (htttps://localhost/img/myimage.png). Можеш допомогти мені?


Чи можете ви створити plnkr? BTW [src]="imagePath"- правильна реалізація для Angular 4
bhantol

Я вважаю, що ваш шлях до зображення неправильний!
Йордан Ніколов

@bhantol Так, я знаю, тому я втрачаю розум. мій imagePath схожий на "img / myimage.png", і він говорить, що не знайдений, коли я використовую [src] = "imagePath".
Annk

Якщо ви можете ввести htttps://localhost/img/myimage.pngв окремому вікні, і там все одно пише, що не знайдено, тоді як @YordanNikolov припускає, що він просто не існує незалежно від кута.
bhantol

Я отримую масив зображень із запиту http і ввожу в масив і відображаю за допомогою ngfor. для першого набору це працює, а після прокрутки сторінки динамічне отримання зображень не працює. Чи можете ви сказати мені, хто
Тілак Радж

Відповіді:


85

AngularJS

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

Кутовий

<img [src]="imagePath">

2
2/4 приклад не працює для мене<img [ERROR ->][src]="../assets/images/hellotravelindia-small.png">
Hidayt Rahman

перевірте свій шлях до джерела img
Йоав Шнідерман

3
@HidaytRahman - Використовуй так -src="assets/images/hellotravelindia-small.png"
151291

Я отримую масив зображень із запиту http і ввожу в масив і відображаю за допомогою ngfor. для першого набору це працює, а після прокрутки сторінки динамічне отримання зображень не працює. Чи можете ви сказати мені, чому
Тілак Радж

72

Скопіюйте свої зображення в папку активів. Angular може отримувати доступ лише до статичних файлів, таких як зображення та конфігураційні файли, з папки активів.

Спробуйте так: <img src="assets/img/myimage.png">


Я отримую масив зображень із запиту http і ввожу в масив і відображаю за допомогою ngfor. для першого набору це працює, а після прокрутки сторінки динамічне отримання зображень не працює. Чи можете ви сказати мені, хто?
Тілак Радж

Так саме !! Я стикався з тією ж проблемою, і ваше рішення спрацювало як шарм. Велике спасибі.
Кокконда Абхілаш


9

Кутові від 4 до 8

Або працює

<img [src]="imageSrc" [alt]="imageAlt" />

<img src="{{imageSrc}}" alt="{{imageAlt}}" />

і Компонент буде

export class sample Component implements OnInit {
   imageSrc = 'assets/images/iphone.png'  
   imageAlt = 'iPhone'

Деревоподібна структура:

-> src 
   -> app
   -> assets
      -> images
           'iphone.png'

8

у вашому компоненті призначити змінну, як,

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

використовуйте цей netImage у своєму src, щоб отримати зображення, як показано нижче,

<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>

5

@Annk ви можете створити змінну у файлі __component.ts

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

і всередині файлу __. component.html ви можете використовувати один із цих 3 методів:

1.

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

2.

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

3.

<div> <img bind-src="myImage"/> </div>

Із трьох першим є той, за якого як IDE, так і ворсинки кричать на вас найменше.
тацу

4

Ну, проблема полягала в тому, що якимось чином шлях не розпізнавався, коли його вставляла srcзмінна. Мені довелося створити таку змінну:

path:any = require("../../img/myImage.png");

а потім я можу використовувати його в src. Дякую всім!


Цей синтаксис не працює в кутових 9
Saurabh47g

2

Ви повинні вказати ширину зображення за замовчуванням

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

це працює для мене на основі всіх інших альтернативних способів.


2
<img src="images/no-record-found.png" width="50%" height="50%"/>

Ваша папка із зображеннями та ваш index.html повинні знаходитися в одному каталозі (дотримуйтесь наступної структури каталогів). це буде працювати навіть після збірки

Структура каталогу

-src
    |-images
    |-index.html
    |-app 

2

Angular може отримувати доступ лише до статичних файлів, таких як зображення та конфігураційні файли, з папки активів. Хороший спосіб завантажити шлях рядка віддаленого збереженого зображення і завантажити його в шаблон.

  public concateInnerHTML(path: string): string {
     if(path){
        let front = "<img class='d-block' src='";
        let back = "' alt='slide'>";
        let result = front + path + back;
        return result;
     }
     return null;
  }

В інтерфейсі DoCheck імплементу компонента та в ньому формула бази даних. Запит до бази даних - це лише зразок.

ngDoCheck(): void {
   this.concatedPathName = this.concateInnerHTML(database.query('src'));
}

І в HTML-шаблоні <div [innerHtml]="concatedPathName"></div>


1

Важливе спостереження за тим, як працюють прив'язки атрибутів Angular 2, 2+.

Проблема з тим, що [src]="imagePath"не працює, поки виконуються такі дії:

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

Належить ваша декларація про прив’язку, [src]="imagePath"безпосередньо прив’язана до компонента this.imagePathабо, якщо вона є частиною циклу ngFor, тоді *each.imagePath.

Однак у двох інших робочих варіантах ви або прив'язуєте рядок до HTML, або дозволяєте прив'язувати HTML до змінної, яка ще не визначена.

HTML не видасть жодної помилки, якщо ви прив'яжете <img src=garbage*Th_i$.ngs>, проте Angular зробить.

Моя рекомендація полягає у використанні вбудованого, якщо у випадку, якщо змінна може бути не визначена , наприклад <img [src]="!!imagePath ? imagePath : 'urlString'">, що може бути як as node.src = imagePath ? imagePath : 'something'.

Уникайте прив’язки до можливих відсутніх змінних або добре використовуйте *ngIfцей елемент.



0

Ви повинні використовувати цей код в angular, щоб додати шлях до зображення. якщо ваші зображення знаходяться в папці "активи".

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

якщо не в папці активів, ви можете використовувати цей код.

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

0

Angular-cli за замовчуванням включає папку активів до параметрів збірки. Я отримав цю проблему, коли в назві моїх зображень були пробіли або тире. Наприклад :

  • 'my-image-name.png' має бути 'myImageName.png'
  • 'my image name.png' має бути 'myImageName.png'

Якщо ви помістили зображення в папку assets / img, тоді цей рядок коду повинен працювати у ваших шаблонах:

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

Якщо проблема не зникає, просто перевірте, чи встановлений файл конфігурації Angular-cli та переконайтеся, що папка ваших активів додана до параметрів збірки.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.