Dieses Mal werde ich Ihnen die Probleme bei der statischen Ressourcenverpackung vorstellen. Was sind die Vorsichtsmaßnahmen bei der statischen Ressourcenverpackung von Vue?
① Die Standardkonfiguration von vue-cli wird in einem bestimmten Pfad bereitgestellt.
② Die CSS-Datei führt zu einem Pfadfehler nachdem relative Pfade für die statische Ressourcenverpackung verwendet wurden.
1. Problem
Die von vue-cli scaffolding generierte Standardverpackung ist die Konfigurationsdatei. Stellen Sie das Projekt nach dem Packen in einem bestimmten Pfad bereit:
//ip:port/public/springActivity/
Zu diesem Zeitpunkt besuchen Sie:
http://ip:port/public/springActivity/index.html
index.html kann normal zugegriffen werden, aber die referenzierten JS-, CSS- und anderen Dateiserverantworten sind alle 404. Überprüfen Sie den importierten Ressourcenpfad wie folgt: http://ip:port/static/css /app.cea07642cd24c0d7a5c4b9b7afc7ff64.csshttp://ip:port/static/js/app.815851e87b083afb82bf.js
Verpacken Sie es erneut, stellen Sie die Ressourcen in einem bestimmten Pfad bereit und greifen Sie dann zu:
index.html static/ |--js/ |--*.js |--css/ |--*.css |--img/ |--*.png
Hintergrund:url(static/img/question_bg.61a2825.png)
5. Beim Lösen der css-Datei liegt ein Problem mit dem Pfad im Paket vor. Bei der Analyse des Verpackungsprozesses wurde festgestellt, dass dies der Fall ist In js eingeführt oder in die Vue-Datei geschrieben. Die CSS-Datei wird zuerst von less, postcss usw. verarbeitet. Nach der Verarbeitung wird sie vonExtractTextPlugin verarbeitet. ExtractTextPlugin extrahiert das gesamte CSS in js in die App. CSS-Datei.
Setzen Sie zuerst options.extract auf false, deaktivieren Sie die CSS-Extraktionsfunktion, packen Sie es erneut und stellen Sie es in einem bestimmten Verzeichnis bereit. Besuchen Sie: http://ip:port/public/springActivity/index.html, Knall, Seite Die normale Anzeige zeigt an, dass der Grand Duke kurz vor der Fertigstellung steht. Bei der Analyse der gepackten Dateien wurde festgestellt, dass keine CSS-Datei vorhanden war und alle CSS-Dateien in der Datei app.js gefunden wurden. CSS wurde über js in die Datei index.html eingefügt, also die Bildressource Der in die CSS-Datei eingeführte Pfad sollte relativ zum Dateipfad index.html sein, d kann normal aufgerufen werden. background:url(static/img/question_bg.61a2825.png)Jetzt weiß ich sicher, wo das Problem liegt, nämlich: ExtractTextPlugin hat den Ressourceneinführungspfad beim Extrahieren der CSS-Datei nicht konvertiert , wodurch die App. css statische Ressourcen einführt, die relativ zum Verzeichnis app.css sind: static/css/static/img/.png.
if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader', publicPath:"../../" //添加 }) }
Nachdem publicPath konfiguriert wurde, wird die Pfadkonfiguration vor dem in der CSS-Datei eingeführten Bilddateipfad hinzugefügt.
Der publicPath-Attributwert ist der relative Pfad von der gepackten app.css-Datei zur index.html Datei
Bildressourcen können auch direkt im von vue-cli generierten statischen Verzeichnis abgelegt werden, um die oben genannten Probleme zu vermeiden. Auf diese Weise kann jedoch die MD5--Zeichenfolge nicht zum Bildnamen hinzugefügt werden , was der Versionskontrolle nicht förderlich ist
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.
Empfohlene Lektüre:
Detaillierte Erklärung der Verwendung von High-Level-Komponenten von Mixin
Das obige ist der detaillierte Inhalt vonProbleme beim statischen Vue-Ressourcenpaketieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!