El problema

Un problema con el que me encontré ayer y me ha traído de cabeza hasta hoy ha sido que por alguna razón que no acababa de entender, el filter para los PNG transparentes no me acababa de funcionar del todo en Internet Explorer.

Lo curioso era que donde no funcionaba era en el entorno de desarrollo, ya que en las maquetas estáticas no había problema. Después de probar de todo, como sustituir las hojas de estilos por exactamente las mismas que las maquetas, deshabilitar JavaScript, que el código HTML de maqueta y el generado en desarrollo fuera el mismo, me he fijado en un pequeño, pero gran detalle: La ruta de la imagen del filter y la url del HTML de desarrollo.

La ruta de la imagen del filter estaba asignada al directorio img que se encontraba en la raíz del portal, imagen que no estaba encontrando porque la url de desarrollo al ser URL Friendly, filter tomaba los valores como directorios e intentaba buscar el directorio img dentro de la ultima carpeta de la URL Friendly que obviamente no existía.

Ejemplo:
URL Desarrollo

http://localhost/nombre1/nombre2/titulo

Filter:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=img/mi_imagen.png);

La solución

Tras cerciorarme y asegurarme la gente de desarrollo Backend que los niveles de URL Friendly se iban a mantener intactos (siempre van a ser dos por ‘debajo’ del raíz) lo único que tenía que hacer era cambiar la ruta relativa del filter y ‘voilà!’

Ejemplo:
Filter:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=../../img/mi_imagen.png);