我有一个具有当前结构的项目
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网站也对此进行了讨论:
到目前为止,我最好的想法是在站点范围内使用一个css目录来放置PIE。HTC文件,并使用它的绝对路径。IE相对于源HTML文档解释behavior属性的URL,而不是像其他CSS属性那样相对于CSS文件。这使得调用PIE行为变得不方便,因为URL必须是:
绝对从域根目录-这使得CSS不容易在目录之间移动
相对于HTML文档-这使得CSS不容易在不同的HTML文件之间重用。