asp.net mvc区域内样式表中的相对路径

时间:2011-10-04 20:18:42

标签: css asp.net-mvc-3 razor relative-path areas

我有一个具有当前结构的项目

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

所有区域视图都使用根共享_Layout视图,该视图引用根内容目录下的css文件。 内容文件夹下的css文件引用具有相同目录的图像或其他内容,如下所示:

.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');
}

当我访问'http:// MyProject / controller / action'时,所有这一切都正常,但是当我进入某个区域'http:// root / area / controller / action'时,我的css文件无法找到路径'../ Content / PIE.htc'。

我不知道如何解决这个问题所以我想知道是否有人知道如何解决这个问题。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果所有区域中的所有视图都使用root共享_Layout(〜/ Views / Shared / _Layout.cshtml),请确保_Layout.cshtml调用css文件,如下所示:

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

我使用MVC 3测试它并且它可以工作。

答案 1 :(得分:1)

有两个有用的SO帖子:css3pie in MVC, where to place the pie.htc file?where do I put the PIE.htc file (for making IE work with CSS3) when I'm using cakephp,PIE网站也有discussion about it

  

IE解释行为属性相对于源HTML文档的URL,而不是像所有其他CSS属性一样相对于CSS文件。这使得调用PIE行为不方便,因为URL必须是:

     
    

来自域根目录的绝对 - 这使得CSS不容易在目录之间移动

         

相对于HTML文档 - 这使得CSS不容易在不同的HTML文件之间重用。

  

到目前为止,我最好的想法是在网站范围内放置一个css目录,放置PIE.htc文件,并使用绝对路径。不是很好,但并不可怕。