在正常的 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/