2011-10-04 9 views
6

tengo un proyecto con la estructura actualruta relativa en hojas de estilo dentro de las áreas ASP.NET MVC

My Project 
    /Content 
    /Controller 
    /View 
    /Model 
    /Areas 
    /Area1 
     /View 
     /Controller 
     /Model 
    /Area2 
     /View 
     /Controller 
     /Model 

Todas las vistas de la zona están usando una raíz comparte la opinión _Layout que se referencia a un archivo CSS bajo el contenido de la raíz directorio. el archivo CSS en la carpeta de contenido hace referencia a imágenes u otro contenido con el mismo directorio, como a continuación:

.box-shadow 
{ 
    -webkit-box-shadow: 0px 5px 80px #505050; 
    -moz-box-shadow: 0px 5px 80px #505050; 
    box-shadow: 0px 5px 80px #505050; 
    behavior: url('../Content/PIE.htc'); 
} 

Todo esto funciona bien cuando tengo acceso a 'http: // MiProyecto/controlador/acción', pero cuando voy a un área 'http: // root/area/controller/action' mi archivo css no puede encontrar la ruta '../Content/PIE.htc'.

no sé cómo hacer para arreglar esto así que me preguntaba si alguien sabía de una manera de solucionar este problema.

Gracias!

+0

'.htc'? ¿No era esa basura específica de IE la que tenía un error y no la relativa a la ubicación actual de la ruta CSS que usaba en relación con la url actual? –

+0

¿Lo intentó sin "../". Si su archivo CSS está en la carpeta de contenido, no debe usar "../". – Tobias

+0

sí que es lo que está haciendo @DarinDimitrov – zSynopsis

Respuesta

2

Si todos los puntos de vista en todas las áreas están utilizando compartida raíz _Layout (~/Views/Shared/_Layout.cshtml), asegúrese de que _Layout.cshtml llama archivo CSS como el siguiente código:

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

Lo probé con MVC 3 y funciona.

+0

Es la ruta del archivo que se hace referencia en el css que es el problema. Puedo obtener la ruta al archivo css correctamente. – zSynopsis

+1

Esto funcionó para mí, gracias. –

1

Hay dos puestos útil de forma que en este: css3pie in MVC, where to place the pie.htc file? y where do I put the PIE.htc file (for making IE work with CSS3) when I'm using cakephp, y el sitio PIE tiene un discussion about it también:

IE interpreta la dirección URL de la propiedad de comportamiento en relación con el documento fuente HTML, en lugar de relativa al archivo CSS como cualquier otra propiedad de CSS. Esto hace invocando el comportamiento PIE inconveniente, ya que la URL tiene que ser:

absoluto de la raíz de dominio - esto hace que la CSS no es fácilmente movible entre directorios

relativa al documento HTML - esto hace que el CSS no es fácilmente reutilizable entre diferentes archivos HTML.

Mi mejor idea hasta ahora es tener un css en todo el sitio de directorio donde se coloca el archivo PIE.htc, y el uso de encauzamiento absoluta a la misma. No es genial, pero no es terrible.

Cuestiones relacionadas