使用javascript切换背景图像强制绝对路径

时间:2013-02-09 04:12:51

标签: javascript background-image

我的div开头如下:

<div id="info_picture" style="background-image: url('assets/img/channels/banners/3')"></div>

图像没有文件扩展名的原因是它可以由用户上传,我不想将扩展名存储在数据库中(或强制它们只使用一种图像格式)。我有一行更改此背景图片的JavaScript:

info_picture.style.backgroundImage = "url('assets/img/channels/banners/"+channel+"')";

但是,在检查元素时,背景图像样式显示为绝对路径,而不是我在脚本中指定的相对路径。这是一个问题,因为没有扩展,导致它与application / octet-stream一起传输。然后镀铬卡住一个警告,图像不显示。如何强制它加载相对路径而不是绝对路径?

2 个答案:

答案 0 :(得分:1)

我的直觉说这不是javascript问题或浏览器问题。

问题可能出在实际文件中,文件实际上有application / octet-stream作为mime类型。

如果我是你,

  1. 我不会使用资产目录来提供图像。我的选择至少是public / images目录。资产不是用于动态文件,而是用于静态文件。

  2. 如果图像是从没有扩展名的服务器提供的,我会提供来自的图像 应用程序通过控制器正确设置mime类型,猜测你使用rails。

答案 1 :(得分:0)

我不知道你的文件夹结构,但你可以使用“../”为你想要的每个文件夹从你执行代码的地方上升。

尝试:

info_picture.style.backgroundImage = "url('../assets/img/channels/banners/"+channel+"')";

看看路径将如何变化。