Assets in CSS Bundles in Webpack
Lassen Sie uns nun dafür sorgen, dass
Pfade zu .png-Dateien
in CSS-Dateien beim Build ersetzt werden:
export default {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve('dist')
},
module: {
rules: [
{
test: /\.png$/,
type: 'asset/resource'
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'bundle.[contenthash].css'
}),
new HtmlWebpackPlugin(),
],
};
Lassen Sie uns testen, wie das funktioniert. Binden wir ein Bild und eine Stildatei im Einstiegspunkt ein:
import './images/img.png';
import './styles.css';
Nehmen wir an, dass wir in der Stildatei einen Pfad zum Bild verwenden:
body {
background: url('images/img.png');
}
Nach dem Build wird der Pfad zum Bild im CSS-Bundle auf einen neuen geändert:
body {
background: url('korrekter Pfad vom Root');
}
Setzen Sie ein Hintergrundbild in der CSS-Datei.
Binden Sie das Bild im Einstiegspunkt ein.
Führen Sie den Build aus und schauen Sie, in welche Datei das Bild kopiert wird und wie der neue Pfad im CSS-Bundle aussieht.