无论我尝试什么,Firefox都不会在通过Apache提供时加载某些背景图像

时间:2013-09-29 03:35:41

标签: html css image apache

我有一个非常简单的CSS,它将背景图像应用于<li>元素

.icon-facebook { background: url("./images/icon_facebook.png") no-repeat; }

当我在本地查看它而没有Web服务器时,即通过双击.html文件,这样可以正常工作。

但是只要我通过Apache服务同一页面 - 无论是在localhost还是生产服务器上 - 背景图像就会消失。

  • 页面上的其他背景图片工作正常 - 并且都有相同的(相对)路径。

  • 指定背景图像的绝对路径也不起作用。

  • 重命名文件不起作用。

  • 如果直接在浏览器中导航,图像可以正常显示。

  • 监控Apache的访问日志,即使CSS中提供了绝对URL,浏览器也不会尝试请求图像(!),

当我检查<li> Firebug说“无法加载给定的URL”时,但是当我将背景图像URL直接从Firebug中的CSS复制并粘贴到新标签中时 - 猜猜是什么?它有效。

我在同一页面上有一个<div>,同一个文件夹中有不同的背景图片,效果很好。当我用我的一个“问题”文件替换它的文件名时,我注意到它不再显示了。

有问题的图片是20x20px PNG(但我也尝试过JPG)。

所有其他浏览器都能正常运行。

这真让我疯狂。

2 个答案:

答案 0 :(得分:3)

<强>原谅。真是令人难以置信。

罪魁祸首是Adblock Plus,我在Firefox上安装但没有安装任何其他浏览器。它将背景图像的名称和/或类名解释为广告或社交媒体烦恼,因此默默地阻止它们。

我之前已将我的生产域添加到其白名单中,但是当它发生变化时我忘了更新它。

这解释了为什么某些图片文件名有效(例如icon_f.png而其他图片文件名却有效 - icon_fb.pngicon_facebook.png - 没有。

这是一个教训 - 不要在开发浏览器上运行任何类型的插件。

我已经准备好哭了......我想我现在会。为我的愚蠢而哭泣。

感谢大家的意见。

答案 1 :(得分:1)

具体来说,罪魁祸首是Fanboy's Social Blocking List,这是Adblock Plus中包含的过滤器订阅之一。它在过去已经给我带来了很多苦恼。

要禁用它,请单击Adblock Plus工具栏按钮,然后选择打开过滤器首选项。然后,您将找到订阅列表,您只需取消订阅即可。

enter image description here

这比完全停用Adblock Plus更好,因此您可以继续将其用于最初目的:阻止广告。