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



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

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

所有区域视图都使用根共享_Layout视图,该视图引用根内容目录下的css文件。content文件夹下的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'。

我不知道如何去修复这个,所以我想知道是否有人知道一个方法来修复这个。

谢谢!

如果所有区域中的所有视图都在使用根共享_Layout (~/views/shared/_Layout.cshtml),则确保_Layout.cshtmlCSHTML调用CSS文件的代码如下:

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

我用MVC 3测试了它,它可以工作。

有两个有用的SO帖子:css3pie在MVC,在哪里放置饼。htc文件?我该把PIE放在哪里呢?当我使用cakephp时,htc文件(用于使IE与CSS3一起工作),PIE网站也对此进行了讨论:

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

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

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

到目前为止,我最好的想法是在站点范围内使用一个css目录来放置PIE。HTC文件,并使用它的绝对路径。

相关内容

  • 没有找到相关文章

最新更新