当前位置:  开发笔记 > 编程语言 > 正文

CSS文件中的ASP.NET MVC URL自动解析

如何解决《CSS文件中的ASP.NETMVCURL自动解析》经验,为你挑选了2个好方法。

在正常的WebForms场景中,任意根相对URL(例如〜/文件夹/ file.txt的)内部 CSS文件,如:

.form { background-image: url(~/Content/Images/form_bg.gif); }

如果我指定,将在运行时自动解析


在引用页面中.

但是,ASP.NET MVC Beta1网站上不再发生这种情况.

有没有办法我可以启用此功能而不诉诸黑客或CSS加载器文件?可能像HttpModules或其他东西?

或者我没有正确地设计我的网站?什么应该是一个好的设计?

由于原始的ASP.NET WebForms已经具有此功能,因此我更愿意使用任何现有功能.但我没有太多线索.

此Web应用程序将部署在~root文件夹可能不明显的多个环境中.


编辑:我的意思是文件的CONTENT中的url而不是文件的url本身.



1> David Kolar..:

我不打扰自动寻根~角色.我知道您希望在部署之间根目录不同的地方使用相同的解决方案,但在CSS文档中,使用相对路径时不应该有任何问题.CSS文档中的路径(到示例中的图像URL)将始终相对于CSS文件的位置,而不管加载该CSS文件的任何页面的路径如何.因此,如果您的图像在,~/Content/Images并且您的样式表在~/Content/Stylesheets,您将始终能够使用background-image: url(../Images/form_bg.gif);,无论加载样式表的页面位置如何,它都将起作用.

有什么理由不行吗?



2> David P..:

我过去使用的一个技巧是实际上使我的CSS文件具有.ASPX扩展名,并在页面签名中设置ContentType属性:

<%@ Page Language="C#" ContentType="text/css" %>

body {
    margin: 0;
    padding: 0;
    background: #C32605 url(<%= ResolveUrl("~/Content/themes/base/images/BodyBackground.png") %>) repeat-x;
    font-family: Verdana, Arial, sans-serif;
    font-size: small;
    color: #d7f9ff;
}

这将确保CSS文件通过ASP.NET框架,并用您的相对路径替换服务器端代码.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有