Domanda

Sto usando Assetic per includere i file JavaScript, ma quando utilizzato nell'ambiente Dev, /app_dev.php viene aggiunto all'inizio dell'URL, quindi l'URL finale sembra /app_dev.php/js/something.js. Ciò si traduce in un 404 quando si tenta di caricare il JS. Quando accedo al sito dall'ambiente di produzione gli URL non includere /app_dev.php E tutto funziona bene.

Potrei aggiungere un condizionale che controlla se si tratta dell'ambiente Dev e chiamare str_replace Sugli URL, ma vorrei risolvere la radice di questo problema, se possibile.

Modificare

@Gilden, capirei che in Dev verrebbero elaborati ogni volta, ma gli URL si traducono semplicemente in 404.

Ecco la mia configurazione assetica:

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

Ed ecco come lo sto usando nel mio modello (app/Resources/Visual/Base.html.php)

foreach ($view['assetic']->javascripts(
            array('@AssetsBundle/Resources/public/js/*'), array(), array('output' => 'js/combined.js')) as $url) {
            echo 'url: ' . $url . '<br />';    
        }

Includo quindi $ URL usando un aiutante personalizzato che ho scritto, ma a quel punto contiene già app_dev.php.

È stato utile?

Soluzione

Non ho usato il modello PHP in Symfony, quindi temo di non avere la risposta migliore. Utilizzando un codice personalizzato, probabilmente stai aggirando un po 'di logica interna, che gestisce la richiesta a un controller.

Come soluzione alternativa potresti provare a rimuovere assetic: use_controller: true da /app/config_dev.yml.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top