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

标签 asp.net asp.net-mvc

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

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

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

<head runat="server">

在引用页面中。

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

有没有一种方法可以启用此功能,而无需求助于 hacks 或 CSS-loader 文件?比如 HttpModules 或者其他东西?

或者我没有正确设计我的网站?什么才是好的设计?

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

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

<小时/>

编辑:我的意思是文件内容中的 url,而不是文件的 url 本身。

最佳答案

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

这行不通有什么原因吗?

关于CSS 文件中的 ASP.NET MVC URL 自动解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240394/

相关文章:

asp.net - 从 global.asax 存储和检索全局变量

c# - 如何解决错误 "The foreign key name was not found on the dependent type "

sql - Entity Framework 6 - 保存更改

asp.net-mvc - 如何从 asp.net mvc unittest 中的 ViewResult 获取模型?

c# - 当我尝试使用自定义服务器控件(在 App_Code 目录中)时全局命名空间出现问题

c# - 如何使多个文本框只读

javascript - 页面加载时地理位置将值传递给 url.action

asp.net-mvc - 如何从 ControllerContext 获取结果类型

asp.net - 如何在 ASP.NET MVC/WebAPI 应用程序中支持 HTTP OPTIONS 动词

c# - asp.net cms 页面子菜单不工作