Warum ist mein Dev Front Controller in assetischen URLs enthalten?
Frage
Ich verwende Assetic, um JavaScript -Dateien einzubeziehen, aber in der Entwicklerumgebung, wenn ich in der Entwicklungsumgebung verwendet wird. /app_dev.php
wird zum Beginn der URL hinzugefügt, daher sieht die endgültige URL aus wie aus /app_dev.php/js/something.js
. Dies führt zu einem 404, wenn versucht wird, die JS zu laden. Wenn ich über die Produktionsumgebung auf die Website zugreife, die URLs nicht enthalten /app_dev.php
Und alles funktioniert gut.
Ich könnte eine Bedingung hinzufügen, die überprüft, ob es sich um die Entwicklungsumgebung handelt und anzurufen str_replace
Auf den URLs, aber ich möchte die Wurzel dieses Problems, wenn möglich, lösen.
Bearbeiten
@Gilden, ich würde verstehen, dass sie in Dev jedes Mal verarbeitet werden, aber die URLs führen einfach zu 404s.
Hier ist meine assetische Konfiguration:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
Und so verwende ich es in meiner Vorlage (App/Ressourcen/Ansichten/Base.html.php)
foreach ($view['assetic']->javascripts(
array('@AssetsBundle/Resources/public/js/*'), array(), array('output' => 'js/combined.js')) as $url) {
echo 'url: ' . $url . '<br />';
}
Ich füge dann $ URL mit einem benutzerdefinierten Helfer hinzu, den ich geschrieben habe, aber es enthält bereits App_DEV.php zu diesem Zeitpunkt.
Lösung
Ich habe keine PHP -Vorlagen in Symfony verwendet, also fürchte ich, ich habe nicht die beste Antwort. Durch die Verwendung eines benutzerdefinierten Codes umgehen Sie wahrscheinlich eine interne Logik, die die Anforderung an einen Controller übernimmt.
Als Problemumgehung könnten Sie versuchen, zu entfernen assetic: use_controller: true
aus /app/config_dev.yml
.