Pregunta

Estoy usando Assetic para incluir archivos JavaScript, pero cuando se usa en el entorno de desarrollo, /app_dev.php se agrega al comienzo de la URL, por lo que la URL final parece /app_dev.php/js/something.js. Esto da como resultado un 404 cuando se intenta cargar el JS. Cuando accedo al sitio desde el entorno de producción, las URL no incluir /app_dev.php Y todo funciona bien.

Podría agregar un condicional que verifique si es el entorno de desarrollo y la llamada str_replace En las URL, pero me gustaría resolver la raíz de este problema, si es posible.

Editar

@Gilden, entendería que en Dev se procesarían cada vez, pero las URL simplemente dan como resultado 404.

Aquí está mi configuración Assetic:

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

Y así es como lo estoy usando en mi plantilla (app/recursos/vistas/base.html.php)

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

Luego incluyo $ URL usando un ayudante personalizado que escribí, pero ya contiene app_dev.php en ese momento.

¿Fue útil?

Solución

No he usado la plantilla de PHP en Symfony, así que me temo que no tengo la mejor respuesta. Al usar algún código personalizado, probablemente esté eludiendo una lógica interna, que maneja la solicitud a un controlador.

Como solución alternativa, podría intentar eliminar assetic: use_controller: true de /app/config_dev.yml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top