2016-12-27 2 views
7

Я с использованием стилизованной-компоненты и пытаюсь установить фоновое изображение, как такимпорт изображений в React.js с стилизованной-компонентой

const HeaderImage= styled.div` 
    background-image: url('../../assets/image.png'); 
'; 

Я также попытался без кавычек, например, так

const HeaderImage= styled.div` 
     background-image: url(../../assets/image.png); 
'; 

в обоих случаях я получаю тот же результат

http://localhost:3000/assets/image.png Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)

Я использую Richard Kall's react starter

Файл определенно находится в указанном месте.

Я загружаю его неправильно?

Я должен упомянуть, что я новичок в этом (React и стилизованных-компоненты)

+0

Не могли бы вы попробовать открыть 'http: // localhost: 3000/assets/image.png' в своем браузере? –

+0

Вы попробовали импортировать изображение Например: import someName from '../../assets/image.png' «someName» может быть заменено любым именем, которое вы хотите – Swapnil

+1

, потому что ваш код будет выполнен в браузере, а не на сервере, поэтому вы не можете получить доступ к своей файловой системе из браузера. Вы можете использовать «файл-загрузчик» для webpack или использовать статическую папку. Я думаю, что самый простой способ - это https://www.npmjs.com/package/file-loader –

ответ

23

Вы должны импортировать изображения следующим образом (при условии, что вы WebPack настроены для импорта медиа-активов).

import myImage from '../../assets/image.png'; 

/* ... */ 

const HeaderImage = styled.div` 
    background-image: url(${myImage}); 
`; 
+0

Мне также нужно было явно указывать атрибуты 'height' и' width'. –

+0

@ IsaacPak, поэтому параметр 'background-size' css тогда? Обращайтесь с стилизованным компонентом как с обычным css. – Ilja

+0

есть. просто css стандартные практики. –

Смежные вопросы