6

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

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'。

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

谢谢!

4

2 回答 2

2

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

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

我用 MVC 3 对其进行了测试,它可以工作。

于 2011-10-05T13:36:56.723 回答
1

关于这个有两个有用的 SO 帖子:css3pie in MVC, where to place the pie.htc file? 当我使用 cakephp 时,我应该将 PIE.htc 文件(用于使 IE 与 CSS3 一起工作)放在哪里,并且 PIE 站点也对此进行了讨论

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

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

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

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

于 2011-12-20T17:19:48.787 回答