Perfekte Lösung für das Problem des CSS-Hintergrundbildpfads im Webpack

Perfekte Lösung für das Problem des CSS-Hintergrundbildpfads im Webpack

Innerhalb des Style-Tags der Vue-Komponente befindet sich der folgende CSS-Code, der das Hintergrundbild verwendet:

Hintergrundbild: URL("../assets/img/icon_add.png");

Die Parsing-Konfiguration des CSS-Loaders in Webpack ist wie folgt

{
        Test: /\.(css|less)$/,
        ausschließen: Pfad.auflösen(__dirname, 'node_modules'),
        verwenden: ['Style-Loader', 'CSS-Loader', 'Less-Loader']
    }

Nach dem Verpacken wurde keine CSS-Datei im Dist-Verzeichnis gefunden. Dies liegt daran, dass die CSS-Datei in eine JS-Datei umgewandelt wird.

Wenn Sie das Projekt zu diesem Zeitpunkt starten, wird das Hintergrundbild korrekt importiert und kann normal angezeigt werden.

2 Extrahieren Sie die CSS-Dateien in ein separates Dateiverzeichnis

Verwenden Sie das Mini-CSS-Extract-Plugin, um die CSS-Dateien separat in das CSS-Verzeichnis unter dem Dist-Verzeichnis zu extrahieren.

2.1 Loader-Konfiguration

{
        Test: /\.(css|less)$/,
        ausschließen: Pfad.auflösen(__dirname, 'node_modules'),
        verwenden: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader']
    }

2.2 Plugin-Konfiguration

neues MiniCssExtractPlugin({
            Dateiname: 'css/[name][contenthash].css',
        })

Nach dem Verpacken sieht die Verzeichnisstruktur von dist wie folgt aus:

Sie können sehen, dass sich das Bild im Stammverzeichnis (dist) befindet, die CSS-Datei jedoch im Verzeichnis „dist/css/“. Sehen wir uns nun an, wie die gepackte CSS-Datei auf den Bildpfad verweist.

2.3 Verpackungsergebnisse

Hintergrundbild: URL (bb65a86a2fe7669e483a56b970bea421.png);

Sie können sehen, dass im Verzeichnis „dist/css“ kein Bild „bb65a86a2fe7669e483a56b970bea421.png“ vorhanden ist. Daher kann das Bild nicht richtig angezeigt werden. Die ideale Situation ist

Hintergrundbild: URL (../bb65a86a2fe7669e483a56b970bea421.png);

3 Lösungen

Ändern Sie die Loader-Konfiguration wie folgt

{
        Lader: MiniCssExtractPlugin.loader,
        Optionen:
            // Der relative Pfad der aktuellen CSS-Datei relativ zum gepackten Stammpfad dist publicPath: '../'
        }
    }, 'CSS-Lader', 'Weniger-Lader'

Zusammenfassen

Das Trennen von CSS-Dateien führt zu CSS-Hintergrundbildpfadfehlern. Der Kern der Lösung besteht darin, den Wert von publicPath zu konfigurieren. Der Wert von publicPath ist der relative Pfadwert des Dateiverzeichnisses, in dem sich die CSS-Datei relativ zum Stammverzeichnis befindet. Beispielsweise ist der Stammpfad /, das Verzeichnis, in dem sich die CSS-Datei befindet, ist /css/, der relative Pfad ist also …

Unerwartete Probleme

Warum werden CSS-Dateien nach dem Webpack-Verpacken in die Datei bundle.js eingemischt, Bilder jedoch nicht in bundle.js? ? ?

Dies ist das Ende dieses Artikels über die perfekte Lösung für das Problem des CSS-Hintergrundbildpfads von Webpack-Verpackungen. Weitere relevante Inhalte zum CSS-Hintergrundbildpfad von Webpack-Verpackungen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  Eine kurze Erklärung zum sinnvollen Einsatz von Tabellen und Divs im Seitendesign

>>:  Zwei Möglichkeiten zum Erstellen von Docker-Images

Artikel empfehlen

Informationen zum Debuggen von CSS-Cross-Browser-Style-Fehlern

Als Erstes müssen Sie einen guten Browser auswähl...

Zehn Erfahrungen im Webdesign im Jahr 2008

<br />Das Internet verändert sich ständig un...

So installieren Sie MySQL unter Linux (Yum und Quellcode-Kompilierung)

Es gibt zwei Möglichkeiten, MySQL unter Linux zu ...

Ausnahmefehler beim Packen von Webpack-Dateien

Vor dem Verpacken im Webpack müssen wir sicherste...

So legen Sie Hintergrundfarbe und Transparenz in Vue fest

Einstellungen für Hintergrundfarbe und Transparen...

Aktivierungsmethode für Windows Service 2016 Datacenter\Stand\Embedded (2021)

Führen Sie cmd mit Administratorrechten aus slmgr...

HTML-Hyperlink ein Tag_Powernode Java Academy

Jeder, der HTML studiert oder verwendet hat, soll...

MySQL 8.0.20 Installations- und Konfigurations-Tutorial unter Win10

Super ausführliches Tutorial zur Installation und...

Einfacher Vergleich von Meta-Tags in HTML

Das Meta-Tag wird verwendet, um Dateiinformationen...