Ich entwickle eine einzelne Seite Anwendung basierend auf der Vue-CLI-Webpack-Vorlage. Da wir auch statische Werte verwenden müssen, müssen wir sie in unserem Stylesheet referenzieren.Pfad zu statischen Assets in der Anwendung vue.js
Die offizielle Dokumentation empfiehlt einen absoluten Pfad wie die folgenden zu verwenden:
background-image: url('/assets/images/lo/example2.svg');
Das Problem ist, dass statische Vermögenswerte werden von den vue-Lader und webpack selbst verarbeitet werden, so dass der Urls gewonnen wird im endgültigen Ausgabe-Stylesheet nicht richtig eingestellt. Alle Assets, die vom webpack url-loader verarbeitet werden, erhalten abhängig von Ihrer publicPath-Konfiguration die korrekte relative URL. Der gleiche Effekt ist für statische Assets erwünscht.
Haben Sie eine Idee, wie statische Elemente in Kombination mit einer vue.js-basierten Anwendung verwendet werden?
aktualisieren
Nach der Untersuchung und eine Menge von Versuch und Irrtum habe ich das letzte Sheet und das Skript Bündel innerhalb des Root-Ordner neben dem index.html platzieren entschieden. Die generierten Pfade funktionieren ordnungsgemäß. Nicht die optimale Lösung, da ich Unterordner für Skripte und Stylesheets bevorzuge (obwohl sie nur eine Datei enthalten). Trotzdem habe ich einen Build-Prozess, der konsistente und gültige Artefakte generiert.
Vielen Dank. Ich benutze diese Technik bereits. Das Problem ist, dass ich absolute Pfade in meinen CSS-Regeln innerhalb meiner Vue-Komponente verwenden muss. Da dieser Ordner direkt in das richtige Ziel kopiert wird, müssen die Pfade in meiner final style.css relativ sein (../assets/images/lo/example.svg). Haben Sie eine Idee, wie Sie es erreichen können? – jimmy
Warum müssen Sie absolute Pfade in Ihren CSS-Regeln verwenden? – WaldemarIce
Es ist die Empfehlung vom offiziellen GitBook. Wenn ich diese Pfade in relative ändere, wird der Build-Prozess unglücklicherweise mit Fehlern enden, weil die referenzierten Assets nicht aufgelöst werden konnten. – jimmy