我的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一起传输。然后镀铬卡住一个警告,图像不显示。如何强制它加载相对路径而不是绝对路径?
答案 0 :(得分:1)
我的直觉说这不是javascript问题或浏览器问题。
问题可能出在实际文件中,文件实际上有application / octet-stream作为mime类型。
如果我是你,
我不会使用资产目录来提供图像。我的选择至少是public / images目录。资产不是用于动态文件,而是用于静态文件。
如果图像是从没有扩展名的服务器提供的,我会提供来自的图像 应用程序通过控制器正确设置mime类型,猜测你使用rails。
答案 1 :(得分:0)
我不知道你的文件夹结构,但你可以使用“../”为你想要的每个文件夹从你执行代码的地方上升。
尝试:
info_picture.style.backgroundImage = "url('../assets/img/channels/banners/"+channel+"')";
看看路径将如何变化。