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

Weitergabe von Techniken für Farbkontrast und -harmonie im Web

Farbkontrast und Harmonie Unter kontrastierenden ...

10 Tipps zur Website-Benutzerfreundlichkeit, die jeder kennen sollte

Lassen Sie uns keine weitere Zeit verschwenden un...

Analyse der gemeinsamen Indexfunktion von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Webdesign-Kenntnisse: Problem der adaptiven Höhe von Iframes

Manche Leute sind vielleicht noch nicht auf dieses...

Fünf Möglichkeiten zum automatischen Seitensprung in HTML

Im vorherigen Artikel haben wir drei gängige Meth...

Prometheus überwacht MySQL mithilfe der Grafana-Anzeige

Inhaltsverzeichnis Prometheus überwacht MySQL übe...

Berechnete Eigenschaften und Listenerdetails

Inhaltsverzeichnis 1. Berechnete Eigenschaften 1....

Analyse des Prinzips und der Verwendung von MySQL-Benutzerdefinierten Funktionen

Dieser Artikel veranschaulicht anhand von Beispie...

JavaScript zum Implementieren einer zufälligen Namensaufruf-Webseite

JavaScript schreibt eine zufällige Roll-Call-Webs...

MySQL-Trigger-Verwendungsszenarien und Methodenbeispiele

auslösen: Trigger-Verwendungsszenarien und entspr...

CSS verwendet calc(), um die aktuell sichtbare Bildschirmhöhe zu ermitteln

Schauen wir uns zunächst die relativen Längeneinh...

Docker installiert und führt den RabbitMQ-Beispielcode aus

Ziehen Sie das Bild: [mall@VM_0_7_centos ~]$ sudo...