Heim >Web-Frontend >CSS-Tutorial >Wie referenziere ich Assets in CSS-Dateien innerhalb eines Symfony 2-Projekts korrekt?

Wie referenziere ich Assets in CSS-Dateien innerhalb eines Symfony 2-Projekts korrekt?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 06:06:021033Durchsuche

How to Correctly Reference Assets in CSS Files Within a Symfony 2 Project?

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:

  1. Verschieben Sie die CSS-Dateien nach Resources/public/css.
  2. Aktualisieren Sie die Twig-Vorlage, um auf die CSS-Dateien aus dem öffentlichen Verzeichnis zu verweisen.
  3. Verwenden Sie den Befehl „assets:install --symlink“, um symbolische Links zu den öffentlichen CSS-Dateien an den entsprechenden Speicherorten zu erstellen.
  4. Während Entfernen Sie bei der Bereitstellung die ursprünglichen CSS-Dateien aus dem öffentlichen Verzeichnis und lassen Sie nur die symbolischen Links übrig.

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!

Stellungnahme:
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