Angular 2 Загрузите фоновое изображение CSS из папки с данными

Моя структура папок выглядит как

-myapp
    -assets
        -home-page-img
            -header-bg.jpg
    -src
        -app
        -home-page
            -home-page.component.css
            -home-page.component.html
            -home-page.component.ts

Внутри моего home-page.component.css у меня есть

header {
    width: 200px;
    height: 200px;
    background-image: url('/src/assets/home-page-img/header-bg.jpg');
}

My angular-cli.json
    "assets": [
    "assets",
    "favicon.ico"
]

Когда я запускаю код, я получаю

GET http://localhost:4200/src/assets/home-page-img/header-bg.jpg 404 (Not Found)

Для демонстрации цели, если я изменяю фоновое изображение на следующее, я получаю совершенно другую ошибку

background-image: url('assets/home-page-img/header-bg.jpg');

./src/app/home-page/home-page.component.css
Module not found: Error: Can't resolve './assets/home-page-img/header-bg.jpg' in '/Users/JohnSmith/Desktop/my-app/src/app/home-page'

Как я могу загрузить это изображение?

Ответ 1

пытаться

background-image: url('../../assets/home-page-img/header-bg.jpg');

Ответ 2

Я использую его. Всегда начинать с "/assets/" в CSS и HTML "активы/". И у меня нет проблем. Angular распознает его.

CSS

.descriptionModal{
    background-image: url("/assets/img/bg-compra.svg");
}

HTML

<img src="assets/img/ic-logoembajador-horizontal.svg" alt="logoEmbajador">

Ответ 3

Попробуйте использовать это ниже:

background-image: url('./../assets/home-page-img/header-bg.jpg');

Ответ 4

Для background-image: url(/assets/images/foo.png), у меня есть другая проблема с i18n + base-href, наконец-то я нашел обходное решение.

Моя проблема была решена путем:

background-image: url(~src/assets/images/foo.png).

тег изображения:

<img src="assets/images/foo.jpg" />