asp.net - CSS 中的图像路径

标签 asp.net css asp.net-mvc-4 background-image less

我正在使用一些 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

那么哪里会出错呢?如何告诉客户端使用正确的路径?

附言如果这很重要,我正在使用无点(更少的 css)。换句话说,所有的 .css 实际上都是 .less

附言这是 ASP.NET MVC4 应用。

更新: 正如@djfarrelly 所指出的,问题出在background-image: url(...) 中的错误路径中。我已将其更改为:

background-image: url("/Content/Folder1/Folder2/Icon1.png");

它开始工作了。 但我仍然很困惑。谁能解释为什么没有指定完整路径它就不能工作?

最佳答案

您对图像的所有引用都应引用您网站的根文件夹,以避免混淆。您是否尝试过将您的 css 更改为从根引用:

.selector {
    background-image: url("/Content/Folder1/Folder2/icon1.png");
}

如果您包含应该清理它的 /

编辑: 我最初用 ../ 而不是正确的 / 来引用根文件夹。

关于asp.net - CSS 中的图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883985/

相关文章:

html - 砌体方格

css - 在鼠标悬停时更改图像贴图的背景

c# - 具有进度可视化的 MVC 4 中的异步操作

asp.net-mvc-4 - ASP.NET MVC 4 网站速度问题

c# - 如何在运行时在 web 表单 asp.net 上从 gridview 获取数据

c# - 如何在 asp.net 成员资格中设置嵌套角色

javascript - 无法实现 jQuery slider

javascript - 使用javascript访问前端的后端变量

javascript - 使用 JavaScript 对 HTML 输出 (ASP.Net) 所做的更改立即撤消

mysql - 在 mvc4 的主键中创建自定义序列号