【发布时间】:2012-12-15 04:51:19
【问题描述】:
我正在使用一些 CSS 框架并尝试显示图标(使用具有 background-image 属性的类选择器)。可以说,我的文件结构是:
Content / site.css
Content / Folder1 / framework.css
Content / Folder1 / Folder2 / framework-images.css
Content / Folder1 / Folder2 / framework-icon1.png
site.css 看起来像:
@include "Folder1/framework.css";
...
framework.css 喜欢:
@include "Folder2/framework-images.css";
...
framework-images.css 是:
.selector {
background-image: url("icon1.png");
}
但是当我试图添加到我的 html 元素类“选择器”时,Firefox 开发工具显示它试图从这里加载图标:
http://localhost:1234/Content/~/Content/Folder1/Folder2/icon.png
虽然正确的路径是(我是对的吗?):
~/Content/Folder1/Folder2/icon.png
或者只是
http://localhost:1234/Content/Folder1/Folder2/icon.png
那么哪里会出错呢?如何告诉客户端使用正确的路径?
附:如果重要的话,我正在使用 dotless (Less css)。换句话说,所有的.css实际上都是.less。
P.P.S.这是 ASP.NET MVC4 应用程序。
更新: 正如@djfarrelly 指出的那样,问题出在 background-image: url(...) 中的路径不正确。我已将其更改为:
background-image: url("/Content/Folder1/Folder2/Icon1.png");
它开始工作了。 但我还是很困惑。谁能解释为什么没有完整路径指定它不能工作?
【问题讨论】:
-
你介意发布你分配班级的那一行吗,不清楚“~”字符是如何进入那里的(css可能是正确的,问题取决于其他地方)。
-
@Ulises 我很确定这是 LESS 魔法的一部分:它会为您生成 URL,包括波浪号。生成的 url 是否实际上指向了错误的位置,或者您只是对其外观感到困扰?
-
感谢澄清,我对 LESS 不熟悉
-
我想原因不在 LESS 中,因为据我所知 ~/Content/ 是 MVC4 的东西。我很确定它类似于 ASP.NET MVC3 的 ../../Content/。
标签: asp.net css asp.net-mvc-4 background-image less