Heim Web-Frontend js-Tutorial So lösen Sie das Problem eines falschen Zugriffspfads nach dem Packen des Vue-Hintergrundbilds

So lösen Sie das Problem eines falschen Zugriffspfads nach dem Packen des Vue-Hintergrundbilds

Jun 29, 2018 pm 03:50 PM
cli vue

In diesem Artikel wird hauptsächlich die Lösung für das Problem des Zugriffspfadfehlers nach dem Packen des Vue-Hintergrundbilds vorgestellt. Ich werde ihn jetzt als Referenz verwenden.

Fallumgebung

Das durch Vue-Cli-Gerüst erstellte Vue-Projekt

stieß beim Packen des Projekts auf das Problem eines Hintergrundbildpfadfehlers Bei einer Suche bei Google stellte ich fest, dass die Ursache darin lag, dass die Bildgrößenbeschränkung während der Konfiguration zu klein war.

Erstens lag der Fehlerpunkt im URL-Loader.

// url-loader配置
// build/webpck.base.conf.js
{
 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
 loader: 'url-loader',
 query: {
  limit: 10000,
  name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
Nach dem Login kopieren

Hier ist die Erklärung des obigen URL-Loader-Tests, bei dem es sich um eine reguläre Matching-Regel handelt, die alle Formate abgleicht, die mit regulären Regeln enden Projektdateien sind, um es ganz klar auszudrücken, alle Bilder (PNG, JPG, JPEG, GIF, SVG). Verwenden Sie dann den URL-Loader zur Verarbeitung. Es gibt auch eine Regel für die Verarbeitung wie folgt: Wenn eine Datei, die nicht größer als 10000 B ist, mit Base64 transkodiert wird, wird das Bild in das Base64-Format konvertiert. Wenn das Image 10 KB überschreitet, wird es separat in das Verzeichnis utils.assetsPath('img/[name].[hash:7].[ext]') gepackt (Sie können dies aus build/utils.js und config/ erfahren index.js Der Pfad ist das statische/img-Verzeichnis und der Bildname ist der Wert nach dem Hashing. Es gibt kein statisches Verzeichnis unter dem Stammverzeichnis, daher wird ein statisches Verzeichnis erstellt Am Ende werden wir später darüber sprechen. Wenn wir ein solches Verzeichnis erstellen, werden alle Bildzugriffspfade zum entsprechenden static/img/'Bildnamen'. An dieser Stelle kann festgestellt werden, dass wir den Zugriffspfad weiter klären, wenn Bilder, die kleiner als 10 KB sind, in Base64 konvertiert werden und bei Bildern, die größer als 10 KB sind, der Bildpfad in static/img/'Bildname' geändert wird.

// 目前我们的目录结构
index.html
static
  |--img
    |--'picname'
  |--css
    |--app.css
  |--js
    |--app.js
Nach dem Login kopieren

Wir wissen, dass img ein HTML-Tag ist und auf seinen Pfad ab index.html zugegriffen werden kann. Es kann über static/img/'picture aufgerufen werden name' Auf das Bild wird korrekt zugegriffen, daher ist der Pfad von img in Ordnung. Dann greift app.css falsch auf static/img/'picture name' zu, da es im CSS-Verzeichnis kein statisches Verzeichnis gibt. Dies verursachte das Problem eines Pfadzugriffsfehlers.

Lösung

1. Verwenden Sie kleine Bilder als Hintergrundbilder (Empfehlung):

Verwenden Sie Bilder, die kleiner als 10 KB sind Es gibt ein Bild als IMG-Bild, das größer als 10 KB ist.

2. Ändern Sie den Grenzwert des URL-Loaders (nicht empfohlen):

Aus der obigen Analyse ist ersichtlich, dass dies bei der Konvertierung des Bildes in Base64 der Fall ist Seien Sie kein Pfadfehlerproblem, stellen Sie sicher, dass Sie Ihren eigenen Hintergrund haben. Dieser Fehler kann verhindert werden, indem Sie alle Bilder in Base64 konvertieren. Ändern Sie den Grenzwert auf den größeren Wert Ihres größten Hintergrundbilds und konvertieren Sie ihn in B-Einheiten

3. Entfernen Sie das CSS nicht. Packen Sie es separat (nicht empfohlen):

wird über CSS-Loader und Style-Loader direkt in JS gepackt, und JS erstellt automatisch das Style-Tag, sodass der Zugriffspfad auf Das Hintergrundbild wird über den Pfad index.html aufgerufen, diese Lösung wird jedoch nicht empfohlen. Dies führt dazu, dass js zu groß wird, und es wird aus demselben Grund wie bei zu großen Bildern nicht empfohlen, in Base64 zu konvertieren.

4. Verwenden Sie absolute Pfade für Bildadresspfade (Empfehlung)

Vorschlag: Verwenden Sie kleine Bilder als Hintergrundbilder und verwenden Sie img-Tags für große Bilder. Zunächst müssen wir einige Unterschiede zwischen Hintergrundbildern und Bildimg klären. Soweit jeder weiß, werden Hintergrundbilder zum Ändern von Webseiten verwendet. Für Dinge, die nichts mit dem eigentlichen Inhalt zu tun haben, verwenden Sie Hintergrundbilder. Wenn irgendetwas mit Inhalten das img-Tag verwenden sollte, zählt es als Inhalt der Webseitenstruktur. Die geänderten Bilder sollten so klein wie möglich sein. Sie können auch Bildkomprimierung und andere Strategien verwenden, um die Größe der Bilder zu reduzieren.

Nicht empfohlen: Der Grund, warum es nicht empfohlen wird, den Grenzwert zu ändern, liegt darin, dass die Konfiguration des URL-Loaders für die Bilder des gesamten Projekts gilt. Das Ändern des Grenzwerts bedeutet auch, dass die Bilder mit dem img Das Tag im HTML wird ebenfalls in base64 konvertiert. Der Nachteil der Konvertierung in base64 besteht darin, dass die Originalgröße des Bildes zunimmt. Wenn Sie ein großes Bild in base64 konvertieren, wird Ihre js-Datei zu groß , wodurch die Zeit zum Laden von js erhöht wird.

Über base64

Vorteile: base64 ist ein Bild, das durch eine Zeichenfolge von String-Codes dargestellt wird. Es wird beim Laden der Seite oder js zusammen geladen, wodurch Bildreferenzen reduziert werden einzelne http-Anfrage. Studenten, die sich mit der Optimierung der Webseitenleistung auskennen, wissen, dass die Einrichtung jeder HTTP-Anfrage eine gewisse Zeit in Anspruch nimmt. Bei kleinen Bildanfragen kann die Einrichtungszeit der HTTP-Anfrage länger sein als der Bilddownload selbst. Daher ist die Base64-Transkodierung kleiner Bilder ein Mittel zur Optimierung von HTTP-Anfragen und zur Gewährleistung einer beschleunigten Seitenwiedergabe.

Nachteile: Der Nachteil von base64 ist wie bereits erwähnt: Es erhöht die Größe des Bildes selbst. Bei kleinen Bildern kann die Vergrößerung, die zu einer Zunahme der js-Anfragen führt, die Einrichtungszeit vollständig ausgleichen einer weiteren http-Anfrage. Der Kompromiss ist kostengünstig. Aber für große Bilder lohnt sich dieser Kompromiss nicht.

Geben Sie ein Beispiel

Beispiel: (Die folgenden Daten werden alle beiläufig simuliert, schauen Sie sich einfach die Idee an)
Wenn die http-Erstellungszeit 0,1 beträgt s Jedes Mal, wenn das Netzwerk übertragen wird, beträgt es 100 KB/s und das Volumen erhöht sich bei jeder Konvertierung in Base64 um 20 %.

  1. Ein 10-KB-Bild wird über eine http-Anfrage heruntergeladen Nach der Konvertierung in Base64 beträgt die Größe 12 KB. Beim Herunterladen von js wird die Größe um 0,12 s erhöht, sodass durch die Konvertierung in Base64 die Seitenladegeschwindigkeit um 0,08 s optimiert werden kann >

  2. Die Anforderungsgeschwindigkeit eines 100-KB-Bildes über http beträgt 1,1 Sekunden. Nach der Konvertierung in Base64 beträgt die Größe 120 KB, wodurch sich die Größe von js um 120 KB erhöht, sodass sich die Ladezeit um 1,2 s verlängert. Auf diese Weise berechnet, kann die Seitenladegeschwindigkeit nach der Konvertierung in Base64 nicht optimiert werden, sondern die Ladegeschwindigkeit wird um 0,1 s verlangsamt, was nicht kosteneffektiv ist.

Denken:

Während des Entwicklungsprozesses müssen wir neben der Bewältigung der Ladegeschwindigkeit auch die Frage berücksichtigen paralleles Herunterladen. Wenn sie sich alle in einem JS befinden, werden die Bilder erst heruntergeladen, wenn das JS heruntergeladen wurde. Das heißt, nach der Konvertierung in Base64 kann davon ausgegangen werden, dass die JS und die Bilder seriell heruntergeladen werden. Mit http-Anfragen können Bilder parallel mit js heruntergeladen werden. Daher sind kleinere Bilder erforderlich, um kostengünstiger zu sein.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich ist PHP chinesische Website!

Verwandte Empfehlungen:

Einführung in den Konstruktions-, Verpackungs- und Veröffentlichungsprozess von Vue-Projekten

v-für in vue Methode zum Laden lokaler statischer Bilder

Vue implementiert die Funktion, Bilder zuzuschneiden und auf den Server hochzuladen

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem eines falschen Zugriffspfads nach dem Packen des Vue-Hintergrundbilds. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

So verwenden Sie die Foreach -Schleife in Vue So verwenden Sie die Foreach -Schleife in Vue Apr 08, 2025 am 06:33 AM

Die Foreach-Schleife in Vue.js verwendet die V-für-Anweisung, mit der Entwickler jedes Element in einem Array oder Objekt durchdringen und bestimmte Operationen für jedes Element ausführen können. Die Syntax ist wie folgt: & lt; Vorlage & gt; & lt; ul & gt; & lt; li v-for = & quot; item in items & gt; & gt; {{item}} & lt;/li & gt; & lt;/ul & gt; & lt;/template & gt; & am

So verwenden Sie Funktionsabfangweserven So verwenden Sie Funktionsabfangweserven Apr 08, 2025 am 06:51 AM

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.

See all articles