Ruta de los activos en archivos CSS en Symfony 2
Tengo un CSS archivo con algunas rutas (imágenes, fuentes, etc.)url(..)
).
Mi estructura de ruta es así:
...
+-src/
| +-MyCompany/
| +-MyBundle/
| +-Resources/
| +-assets/
| +-css/
| +-stylesheets...
+-web/
| +-images/
| +-images...
...
Quiero hacer referencia a mis imágenes en la hoja de estilo.
Primera soluciónCambié todas las rutas del archivo CSS a rutas absolutas. Esto no es una solución, ya que la aplicación debería (¡y debe hacerlo!) Trabajar en un subdirectorio también.
Segunda soluciónUtilice Assetic confilter="cssrewrite"
.
Así que cambié todas mis rutas en mi archivo CSS a
url("../../../../../../web/images/myimage.png")
para representar la ruta real desde mi directorio de recursos a la/web/images
directorio. Esto no funciona, ya que cssrewrite produce el siguiente código:
url("../../Resources/assets/")
que obviamente es el camino equivocado.
Despuésassetic:dump
se crea esta ruta, que sigue siendo incorrecta:
url("../../../web/images/myimage.png")
El código de ramita de Assetic:
{% stylesheets
'@MyCompanyMyBundle/Resources/assets/css/*.css'
filter="cssrewrite"
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Solución actual (tercera) Dado que todos los archivos CSS terminan en/web/css/stylexyz.css
, Cambié todas las rutas en el archivo CSS para que sean relativas:
url("../images/myimage.png")
sta solución (mala) funciona, excepto en ladev
entorno: la ruta CSS es/app_dev.php/css/stylexyz.css
y, por lo tanto, la ruta de la imagen resultante de esto es/app_dev.php/images/myimage.png
, que da como resultado unaNotFoundHttpException
.
¿Existe una solución mejor y que funcione?