Ich versuche, Assetic in einem Symfony 2-Projekt zu verwenden. Ich habe folgende Einstellungen in meinem config.yml:Asset-Asset-Sammlung verkettet im Debug-Modus
# app/config/config.yml
assetic:
debug: %kernel.debug%
use_controller: true
filters:
cssrewrite: ~
yui_css:
jar: /home/testing/bin/yuicompressor-2.4.7.jar
less:
node: /usr/bin/node
node_paths: [/usr/local/bin/]
apply_to: "\.less$"
assets:
all_js:
inputs:
- @FoundationViewBundle/Resources/public/js/*
filters: [?yui_js]
all_css:
inputs:
- @FoundationViewBundle/Resources/public/css/*
filters: [less, ?yui_css]
(Falls Sie sich fragen, werden diese Einstellungen nicht in der config_dev.yml Datei überschrieben werden.)
Diese Sammlungen von Assetic abgeholt und Routen werden für sie erstellt. Für jede Datei gibt es individuelle Routen mit einer Nummer und dem Dateinamen ohne die Dateiendung. Für die Datei "base.css" lautet die Route zum Herunterladen der Datei (mit angewendeten Filtern) beispielsweise "/ assetic/all_css_part_1_base_1".
I schließen dann die Asset-Sammlungen in meiner Vorlage Zweig wie folgt:
{% stylesheets '@all_css' %}
<link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}">
{% endstylesheets %}
(. Und in ähnlicher Weise für die "all_js" Sammlung, aber ich werde die CSS Seite verwenden, um mein Problem zu demonstrieren)
Wenn Twig meine Vorlage rendert, verwendet es nicht die Routen, die für die einzelnen Dateien erstellt wurden, sondern zeigt "asset_url" für die Sammlung "all_css" als "/css/9118a5a_part_1.css" an.
Ich benutze den Dev-Front-Controller und habe getestet, dass Assetic glaubt, dass es im Debug-Modus ist. (Die Nur-Produktion-Filter werden nicht angewendet.) Die Dateien werden jedoch immer noch verkettet, obwohl die Dokumentation etwas anderes vermuten lässt.
Es ist sehr schwierig, Probleme in diesen Dateien aufzuspüren, da die Zeilennummern insbesondere bei JavaScript-Fehlern nicht übereinstimmen. Muss ich noch etwas anderes tun, damit Twig die Dateien separat anzeigt?
Ich hatte gehofft, diese Vorlage als Teil eines Pakets zu verwenden, das in mehrere Projekte importiert werden kann und die richtigen Assets basierend auf den Projektkonfigurationen enthält. Wenn ich die Assets direkt in die Vorlage lege, wird sie nicht wiederverwendbar sein. (Ich denke, ich könnte die Asset-Aufnahme in Blöcke setzen und sie mit einer projektspezifischen Vorlage überschreiben, wenn es keine andere Möglichkeit gibt.) – restouffer