Невозможно просмотреть изображение из библиотеки в приложении angular

#angular #angular-library

#angular #angular-библиотека

Вопрос:

Я создал библиотеку angular с компонентом, который имеет тег image, который использует изображение из папки assets в библиотеке, как показано ниже

<img src="assets/sample.jpg"/>

И я пытаюсь использовать библиотеку в приложении angular. Я смог объединить папку assets вместе с библиотекой и изменил свой файл angular.json, чтобы иметь опцию assets, как показано ниже

{ «глобус»: «**/*», » ввод»: «node_modules/@uitest/ui-test/assets», «вывод»: «/projects/ui-test-app/src/assets» }

При выполнении вышеуказанных шагов я вижу, что папка assets копируется в папку dist, связанную с приложением angular, при ее создании

Но если я использую команду ng serve для запуска приложения на локальном хосте, изображение не загружается, поскольку папка ресурсов не найдена

Ссылка Git hub на тестовое приложение для воспроизведения проблемы https://github.com/spiderprn/ui-test.git

Комментарии:

1. Вы пробовали <img src=»~/assets/sample.json» /> или <img src=»./assets/sample.json» />?

Ответ №1:

Что, если вы скопируете эту папку в ресурсы перед подачей, npm run myServe .

package.json родительского проекта:

   "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "build_lib": "ng build ui-test-app",
    "copy_files": "copy .\projects\ui-test-app\src\assets .\dist\assets",
    "myServe": "npm run build_lib amp;amp; npm run copy_files amp;amp; npm run start"
  },
  

Ответ №2:

Добавьте следующее в angular.json, где <your-lib> указано имя вашей библиотеки:

 "assets": [
  "src/favicon.ico",
  "src/assets",
  { "glob": "**/*", "input": "./node_modules/<your-lib>/assets", "output": "./assets/<your-lib>" }
],
  

Для проекта в библиотеке:

 {
  "glob": "**/*",
  "input": "./dist/<your-lib>/assets",
  "output": "./assets/<your-lib>"
}
  

Ответ №3:

Этот формат img тега выглядит следующим образом. Вам нужно указать правильный путь в src

 <img src="assets/sample.jpg">