Perché il mio controller Front Dev è incluso negli URL assetici?
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.
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
.