MVC中的css3pie,pie.htc文件放在哪里?
Posted
技术标签:
【中文标题】MVC中的css3pie,pie.htc文件放在哪里?【英文标题】:css3pie in MVC, where to place the pie.htc file? 【发布时间】:2011-06-19 17:50:45 【问题描述】:我一直在尝试在我的 MVC 项目中使用 Css3pie 来渲染圆角面板,但到目前为止还没有成功。
我使用普通的 html 页面遵循示例,它可以完美运行,但不适用于我的 MVC 项目。 我认为这与在 MVC 中混淆的“pie.htc”文件的路径有关
我将“pie.htc”文件放在项目文件夹(根目录)和我的 css 文件中,我使用: 行为:url(/PIE.htc);
我认为需要修改 MVC 路由器以接受 htc 文件扩展名? 对不起,我是 MVC 的新手。有没有人尝试过 pie.htc 并让它在 MVC 项目中工作,请帮忙?
谢谢!
【问题讨论】:
【参考方案1】:附带说明(也许它会解决您的问题)如果您不想将 .htc 文件放在您的根目录下,您可以执行以下操作来解决行为固有的相对路径问题。这不是最漂亮的解决方案,但效果很好 -
在您的 css 中,将行为定义为:behavior: url(CSS3PIE);
那么在你的 Global.asax.cs 中有如下代码:
protected void Application_BeginRequest(Object sender, EventArgs e)
CheckForCSSPIE();
private void CheckForCSSPIE()
if (!Regex.IsMatch(Request.Url.ToString(), "CSS3PIE"))
return;
const string appRelativePath = "~/Content/css/PIE.htc";
var path = VirtualPathUtility.ToAbsolute(appRelativePath);
Response.Clear();
Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
Response.RedirectLocation = path;
Response.End();
它只会查找任何匹配“CSS3PIE”的请求,并从正确的位置返回 .htc 文件。
【讨论】:
这似乎对我有用,除非我的根 URL 末尾没有 / 。例如。 “SERVER/App”有效,但“SERVER/App”失败。其他页面都很好,只是root错了。有什么建议吗?【参考方案2】:将以下内容添加到Global.asax
文件的RegisterRoutes(RouteCollection routes)
方法中
routes.IgnoreRoute("pie.htc");
【讨论】:
下次请给出更多理由说明为什么这会起作用,以及这究竟会做什么,否则这个答案并不能真正解决任何问题。【参考方案3】:在您的样式表中,添加以下behavior
:
behavior: url("/Content/PIE/PIE.css")
【讨论】:
以上是关于MVC中的css3pie,pie.htc文件放在哪里?的主要内容,如果未能解决你的问题,请参考以下文章