2017-06-11 2 views
0
nicht

Wenn ich ein Bild angeben, in meinem reagieren Komponente einen relativen Pfad es gerade feinWebpack 2 Hintergrundbild relativer Pfad arbeitet

Komponente lädt:

import myImg from '../img/myImg.jpg'; 
... 
<img className="myImg" src={myImg} alt="amazing image" /> 

Dies funktioniert gut. Und bei der Inspektion es dem Pfad als http://localhost:8080/src/img/myImg.jpg

Allerdings gibt, wenn ich versuche, das Bild als Hintergrundbild zu verwenden, der Weg falsch ist, und ich bekomme ein 404

CSS:

#mainContainer { 
    background-image: url('../img/myImg.jpg'); 
    background-size: cover; 
    background-position: center; 
} 

Dies führt zu Der Pfad ist http://localhost:8080/css/src/img/myImg.jpg was falsch ist. Wenn ich eine absolute URL verwenden, funktioniert es background-image: url('http://localhost:8080/src/img/challenge.jpg');

Webpack config:

... 
     { 
      test: /\.less$/, 
      include: [ 
       path.resolve(__dirname, 'src/less') 
      ], 
      use: ExtractTextPlugin.extract({ 
       fallback: 'style-loader', 
       use: [ 
        { 
         loader: 'css-loader', 
         options: { importLoaders: 1 } 
        }, 
        'less-loader' 
       ] 
      }) 
     }, 
     { 
      test: /\.(jpe?g|png|gif|svg)$/i, 
      include: [ 
       path.resolve(__dirname, 'src/img') 
      ], 
      use: 'file-loader?name=[path][name].[ext]' 
     } 
    ] 
}, 
plugins: [ // https://webpack.js.org/configuration/plugins/ 
    new ExtractTextPlugin('css/' + pkg.name + '.' + pkg.version + '.css'), 
    new HtmlWebpackPlugin({ template: path.join(__dirname, 'src/template.js')})//, 
] 
... 

Was getan werden kann, einen relativen Pfad in der CSS zu benutzen?

Antwort

0

Sieht so aus, als ob Sie nur anoter '../' in Ihrem relativen Pfad für Ihre CSS benötigen.

#mainContainer { 
    background-image: url('../../img/challenge.jpg'); 
    background-size: cover; 
    background-position: center; 
} 
+0

Ja, dachte ich, dass das Problem sein könnte, aber wenn ich es ändern, erhalte ich: Modul Build fehlgeschlagen: ModuleNotFoundError: Modul nicht gefunden: Fehler: Kann nicht ‚lösen ../../img/myImg .jpg 'in'/Benutzer/chaselester/code/git/blife/src/less ' – Chipe

+0

Es ist ein wenig verwirrend, woher das' src 'in' localhost: 8080/css/src/im kommt ..... ', da es nirgends in deinem Stil ist. Vielleicht versuchen ../src/img/challange.jpg? – Nieminen

+0

Nein gehen. Ich bin ein bisschen verwirrt über den Pfad, den es zu lösen versucht, wenn ich ein Hintergrundbild mache: ... css/src/img ... aber bei Verwendung eines Tags ist der Pfad aufgelöst von ist .../src/img/... Keine js hinzugefügt vor wie css hinzugefügt wird vor – Chipe