Angular2 inklusive css-image-Pfad
Als ich zählen Stil in Komponente wie folgt:
@Component({
styleUrls: [
"assets/plugins/test/css/style.css"
],
encapsulation: ViewEncapsulation.None
})
und wenn Stil enthält Verweise auf Bilder, zum Beispiel
.sample { background-image: url(../img/bg.jpg); }
browser versucht zu finden bg.jpg bei base url (http://localhost/bg.jpg) statt, die es suchen soll, wird das Bild im "http://localhost/assets/plugins/test/img/".
Passiert, wenn Angular2 fügt Stil zwischen style
- tags. Ist es möglich, Angular2 einfügen <link href="..."/>
statt?
Update 1
Plunker: http://plnkr.co/edit/SHJzVHOyTuLu106r6tpD öffnen der browser-Entwickler-Konsole und suchen Sie nach "bg.jpg"
- Hat Ihre Seite überhaupt geladen, wenn Sie neu laden mit F5? Siehe auch stackoverflow.com/questions/31415052/..., Siehe auch stackoverflow.com/questions/34535163/...
- Alles andere läuft einwandfrei
- Ich denke immer noch, meine links bieten die Lösung. Einen server verwenden, der unterstützt pushState oder änderung
HashLocationStrategy
und fügen Sie eine<base href="/">
oder der entsprechende Dienstleister in derbootstrap()
- Sie müssen absolute Pfade zu den Bildern (relativ zur Basis). In Ihrem Fall
assets/plugins/test/img/bg.jpg
. - Also, wenn ich will auch auf externe jquery-plugin, das einige css mit den Bildern, ich werde zu beheben, Bild Pfade manuell? Ich denke, dass manuelles hinzufügen
<link href="..."/>
element header aufngViewLoaded
ist der bessere Weg. Aber gibt es nicht irgendeine offizielle Weg, um dieses problem zu lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In diesem blog gepostet wird, wie Formatvorlagen in angular2 überschreiben sich gegenseitig http://blog.thoughtram.io/angular/2015/06/25/styling-angular-2-components.html
Zitat: "Wo führen die am Ende in den DOM? Gut, aus dem gleichen Grund wie zuvor erläutert, Sie sind geschrieben in den Kopf des Dokuments. Aber nicht nur das, als Eckige holt sich die style-Ressourcen, die es dauert, den text der Antwort, inlines und hängt Sie, nachdem alle Komponenten wie inline-styles."
Vorlage Inline-Styles haben die höchste Priorität in Angular2
Beim arbeiten mit
<link href="..."/>
im header-siehe diesen thread CSS-Datei-Pfade auflösen werden nicht korrekt mit Winkel-ng-view, es hat vor-fest ein"/'<link href="/styles/main.css"/>
statt<link href="styles/main.css"/>
In diesem thread ist eine zusätzliche Erklärung Laden externer css-style in den Winkel-2-Komponente
Drei Möglichkeiten zum Einfügen von CSS
Vielleicht die einfachste Lösung ist das einfügen der vollständigen Pfad in der css -
statt
example.com/subdirectory/
dann dieses Update wird nicht funktionierenSollten Sie das laden /importieren von Daten in der css-Datei entsprechend der Basis-Pfad Ihrer app (Sie können hinzufügen
<base href="YOUR_APP_DIRECTORY_PATH" />
als erstes Kind von head-tag index.html für die Konsistenz) wie diese