Heim > Artikel > Web-Frontend > Wie referenziere ich Assets in CSS-Dateien innerhalb eines Symfony 2-Projekts korrekt?
Pfad der Assets in CSS-Dateien in Symfony 2
Symfony 2 bietet einen Mechanismus zum Verwalten von Assets wie CSS- und Bilddateien die Assetic-Komponente. Allerdings kann die Angabe des korrekten Pfads zu referenzierten Assets in CSS in bestimmten Projektverzeichnisstrukturen eine Herausforderung sein.
Problemübersicht
Bedenken Sie die folgende Verzeichnisstruktur:
... +-src/ | +-MyCompany/ | +-MyBundle/ | +-Resources/ | +-assets/ | +-css/ | +-stylesheets... +-web/ | +-images/ | +-images... ...
In diesem Fall befinden sich CSS-Dateien unter /app/Resources/assets/css, während sich Bilder unter /web/images befinden. Ziel ist es, diese Bilder innerhalb der CSS-Dateien zu referenzieren.
Fehlgeschlagene Lösungen
Erste Lösung: Absolute Pfade
Das Ändern von Pfaden in CSS-Dateien in absolute URLs ist keine praktikable Lösung, da die Anwendung möglicherweise nicht immer im Stammverzeichnis ausgeführt wird Verzeichnis.
Zweite Lösung: Assetic mit CSSrewrite-Filter
Die Verwendung von Assetic mit dem Filter „cssrewrite“ schlägt ebenfalls fehl, da der generierte Code nicht den korrekten Pfad zum erstellt Bilder.
Aktuelle Lösung: Relativ Pfade
Das Definieren von Bildpfaden relativ zu den CSS-Dateien funktioniert in der Produktionsumgebung, schlägt jedoch in der Entwicklungsumgebung fehl.
Funktionierende Lösung
Die effektivste Lösung besteht darin, die CSS-Dateien in einem öffentlich zugänglichen Verzeichnis zu speichern und das CSS während der Bereitstellung neu zu erstellen. So funktioniert es:
Bei diesem Ansatz werden die CSS-Dateien während der Bereitstellung neu kompiliert, um sicherzustellen, dass sie die richtigen Pfade zu den Bildern enthalten. Die Bilder selbst befinden sich weiterhin im Verzeichnis web/images, sind für Benutzer jedoch nicht direkt zugänglich.
Das obige ist der detaillierte Inhalt vonWie referenziere ich Assets in CSS-Dateien innerhalb eines Symfony 2-Projekts korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!