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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top