Pfad von Assets in CSS-Dateien in Symfony 2
Im Zusammenhang mit Symfony 2 gab es Schwierigkeiten beim Referenzieren von Bildern in CSS-Dateien aus unterschiedlichen Verzeichnisstrukturen. Berücksichtigen Sie die folgende Verzeichnisstruktur:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
Die Herausforderung entsteht, wenn Sie versuchen, Bilder in Stylesheets zu referenzieren und gleichzeitig die Best Practices einzuhalten, Original-CSS-Dateien im Asset-Verzeichnis (/src/MyCompany/MyBundle/Resources/) aufzubewahren. assets/css/) und Bilder im öffentlichen Verzeichnis (/web/images/).
Erste Lösungen
Erste Versuche umfassten die Verwendung absoluter Pfade und Assetic mit dem „ cssrewrite"-Filter. Diese Lösungen erwiesen sich jedoch als unwirksam.
Aktuelle Lösung
Die aktuelle Lösung besteht darin, relative Pfade in CSS-Dateien zu verwenden und Twig entsprechend anzupassen. Anstatt absolute Pfade zu verwenden, werden Bilder wie folgt referenziert:
url("../images/myimage.png")
Diese Lösung funktioniert in der Produktionsumgebung, es tritt jedoch ein Problem in der Entwicklungsumgebung auf, das zu einer NotFoundHttpException führt.
Verbesserte Lösung
Um dieses Problem zu lösen, besteht die verbesserte Lösung darin, die CSS-Dateien in einem öffentlichen Verzeichnis zu speichern und die Asset-Funktion zum Referenzieren von Bildern zu verwenden. Darüber hinaus können die ursprünglichen CSS-Dateien nach dem Befehl assetic:dump entfernt werden. Dies ermöglicht das gewünschte Verhalten, die Original-CSS-Dateien privat zu halten und gleichzeitig Bilder korrekt zu referenzieren.
Endgültiger Gewinner
Beim Testen verschiedener Methoden stellt sich heraus, dass die beste Lösung die ist Asset-Funktion mit CSS-Dateien in einem öffentlichen Verzeichnis. Dieser Ansatz berücksichtigt die Notwendigkeit, die Original-CSS-Dateien unveröffentlicht zu lassen und gleichzeitig eine ordnungsgemäße Referenzierung der Bilder sicherzustellen.
Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die das Frage-und-Antwort-Format betonen: **Option 1 (Fokus auf Herausforderungen und Lösungen):** * **So referenzieren Sie Bilder in CSS-Dateien aus verschiedenen Verzeichnissen in Symf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!