2016-12-27 3 views
7

Ich bin mit Stil-Komponenten und ich versuche, ein Hintergrundbild zu setzen, wie soImportieren von Bildern in React.js mit Stil-Komponenten

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

ich auch ohne die Anführungszeichen versucht habe, wie so

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

In beiden Fällen habe ich das gleiche Ergebnis

http://localhost:3000/assets/image.png fehlgeschlagen Ressource laden: der Server mit einem Status von 404 geantwortet (nicht gefunden)

Ich Richard Kall's react starter

Die Datei ist auf jeden Fall in der angegebenen Position.

Werde ich es falsch laden?

ich erwähnen sollte, bin ich zu dieser sehr neu (Reaktion, und gestylt-Komponenten)

+0

Können Sie versuchen, 'http: // localhost: 3000/assets/image.png' in Ihrem Browser zu öffnen? –

+0

Haben Sie versucht, das Bild Zum Beispiel Import: Import von somename ‚../../assets/image.png‘ Die ‚somename‘ durch einen beliebigen Namen ersetzt werden, können Sie – Swapnil

+1

wollen es ist, weil Sie den Code in Browser ausgeführt wird, nicht im Server, so dass Sie vom Browser aus nicht auf Ihr Dateisystem zugreifen können. Sie können 'file-loader' für das Webpack verwenden oder einen statischen Ordner bereitstellen. Ich denke, der einfachste Weg ist https://www.npmjs.com/package/file-loader –

Antwort

23

Sie Bilder in der folgenden Weise importieren sollten (unter der Annahme, dass Sie webpack für den Import von Media Assets konfiguriert haben).

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

/* ... */ 

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

Ich musste die Attribute 'height' und' width' explizit angeben. –

+0

@IsaacPak so 'Hintergrundgröße' css Parameter dann? Behandeln Sie die gestylte Komponente als Ihre normale CSS im Grunde. – Ilja

+0

ja. nur CSS-Standard-Praktiken. –

Verwandte Themen