Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ERB在Javascript中设置CSS背景图像路径_Javascript_Ruby On Rails_Ruby_Erb - Fatal编程技术网

使用ERB在Javascript中设置CSS背景图像路径

使用ERB在Javascript中设置CSS背景图像路径,javascript,ruby-on-rails,ruby,erb,Javascript,Ruby On Rails,Ruby,Erb,我试图在javascript文件中使用erb设置元素的背景图像 document.getElementById("logo").style.backgroundImage = "<%= asset_path('logo.png') %>"; document.getElementById(“logo”).style.backgroundImage=“”; 但是图像没有显示出来 当我在浏览器上检查元素并访问为图像生成的url时,图像就会出现 当我将backgroundImage更改

我试图在javascript文件中使用erb设置元素的背景图像

document.getElementById("logo").style.backgroundImage = "<%= asset_path('logo.png') %>";
document.getElementById(“logo”).style.backgroundImage=“”;
但是图像没有显示出来

当我在浏览器上检查元素并访问为图像生成的url时,图像就会出现

当我将
backgroundImage
更改为
backgroundColor=“red”
时,它会工作


因此,如果路径正确,并且用于设置元素样式的js可以工作,那么问题出在哪里?

您应该使用css来实现这一点

.logo {
  background-image: '/assets/images/logo.png'
}

作为替代方案,您可以在布局或页面erb文件中使用突兀的Javascript:包括标记并使用ruby嵌入式代码。

您应该使用css来实现这一点

.logo {
  background-image: '/assets/images/logo.png'
}

作为替代方案,您可以在布局或页面erb文件中使用突兀的Javascript:包括标记并使用ruby嵌入式代码。

这不起作用,因为它不是正确的语法,您缺少
url
部分

document.getElementById("logo").style.backgroundImage = "url(<%= asset_path('logo.png') %>)";
document.getElementById(“logo”).style.backgroundImage=“url()”;
这应该可以奏效;)


但是,为什么要使用javascript而不是CSS来做这样的事情呢?

这不起作用,因为它的语法不正确,您缺少了
url
部分

document.getElementById("logo").style.backgroundImage = "url(<%= asset_path('logo.png') %>)";
document.getElementById(“logo”).style.backgroundImage=“url()”;
这应该可以奏效;)


然而,为什么要使用javascript而不是CSS来做这样的事情呢?

@OhHendrie如果我不介意的话,我会删除这条评论,指南中说在javascript文件中使用ERB。为什么需要这样做?阅读并返回plzYou绝对可以在JS视图文件中为呈现的JS使用ERB。@OhHendrie如果我是uno,我会删除该注释。在该指南中,哪里说要在javascript文件中使用ERB。为什么需要这样做?阅读并返回plzYou绝对可以在JS视图文件中为渲染的JS使用ERB。谢谢。这只是更大功能中的一行。谢谢。这只是更大函数中的一行。