Heim > Web-Frontend > CSS-Tutorial > Wie verwaltet man CSS-Asset-Pfade in Symfony 2 für eine sichere und effiziente Bereitstellung?

Wie verwaltet man CSS-Asset-Pfade in Symfony 2 für eine sichere und effiziente Bereitstellung?

Mary-Kate Olsen
Freigeben: 2024-11-12 09:18:01
Original
948 Leute haben es durchsucht

How to Manage CSS Asset Paths in Symfony 2 for Secure and Efficient Deployment?

Pfade für CSS-Assets in Symfony 2

Problem:

In einem Symfony 2-Projekt , Sie haben eine CSS-Datei mit Verweisen auf Bilder und Schriftarten (z. B. url(..)). Sie möchten diese Dateien im CSS referenzieren, ohne die Originale direkt im öffentlichen Verzeichnis verfügbar zu machen.

Mögliche Lösungen:

Lösung 1: Absolute Pfade

Das Ändern aller Pfade im CSS in absolute Pfade ist keine geeignete Lösung, da auf die Anwendung möglicherweise nicht immer zugegriffen werden kann dasselbe Unterverzeichnis.

Lösung 2: Assetic mit dem Filter „cssrewrite“

Die Verwendung von Assetic mit dem Filter „cssrewrite“ kann beim Umschreiben von Pfaden helfen, führt jedoch häufig zu falschen Pfaden Generation.

Lösung 3: Relativ Pfade

Das Ändern aller Pfade im CSS so, dass sie relativ zum Stylesheet-Speicherort sind, funktioniert außer in der Entwicklungsumgebung, wo der CSS-Pfad „/app_dev.php“ enthält und zu einer „NotFoundHttpException“ für das Bild führt Pfade.

Arbeitslösung:

Die einzige funktionierende Lösung ist Platzieren Sie die ursprünglichen CSS-Dateien in einem privaten Verzeichnis (z. B. „Resources/assets/css“) und kompilieren Sie sie mit Assetic in ein öffentliches Verzeichnis (z. B. „web/css“).

Codestruktur :

...
+-src/
| +-MyCompany/
|   +-MyBundle/
|     +-Resources/
|       +-assets/
|         +-css/
|           +-stylesheets...
+-web/
| +-css/
|   +-stylexyz.css
| +-images/
|   +-images...
...
Nach dem Login kopieren

Assetischer Zweig Code:

{% stylesheets
    '@MyCompanyMyBundle/Resources/assets/css/*.css'
    filter="cssrewrite"
%}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Nach dem Login kopieren

Kompilierungsprozess:

Dieser Prozess stellt sicher, dass die CSS-Dateien mit den richtigen Bildpfaden im öffentlichen Verzeichnis kompiliert werden:

  1. Kopieren Sie die ursprünglichen CSS-Dateien in das öffentliche Verzeichnis.
  2. Führen Sie „assetic:dump“ aus. um die CSS-Dateien zu kompilieren.
  3. Entfernen Sie die ursprünglichen CSS-Dateien aus dem öffentlichen Verzeichnis.

Vorteile:

  • Ermöglicht Speichern der Original-CSS-Dateien in einem privaten Verzeichnis.
  • Kompiliert CSS mit dem richtigen Bild in das öffentliche Verzeichnis Pfade.
  • Original-CSS-Dateien werden nicht der Öffentlichkeit zugänglich gemacht.

Das obige ist der detaillierte Inhalt vonWie verwaltet man CSS-Asset-Pfade in Symfony 2 für eine sichere und effiziente Bereitstellung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage