参考轨道图像在jquery函数中

Mas*_*son 1 javascript css jquery ruby-on-rails asset-pipeline

我有一个jquery函数,它应该改变页面的背景.我希望背景是app/assets/images目录中的图像.但是,我对使用资产管道引用图像的正确方法感到困惑.

这是我现在的路线:

    $('body').css("background-image", "url('welcome.png')");
Run Code Online (Sandbox Code Playgroud)

在url参数中访问图像的最佳方法是什么?

tir*_*adc 6

这包含在文档中:

http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

您应该使用"2.3.3 JavaScript/CoffeeScript和ERB"中描述的方法,这意味着将.erb扩展名添加到JS文件中,并使用asset_path.

另一种更优雅的方法是将图像移动到css.scss文件中的类定义,然后在jQuery中添加该类:

.welcome {
  background-image: url(image-path('welcome.png'));
}
Run Code Online (Sandbox Code Playgroud)

在你的jQuery中:

$('body').addClass("welcome");
Run Code Online (Sandbox Code Playgroud)


Tra*_* Fu 5

试试这个:

$('body').css("background-image", "url('/assets/welcome.png')");
Run Code Online (Sandbox Code Playgroud)

要访问管道中的资产,您必须指定该assets文件夹.

我一直试图找到我读到的地方,但Rails基本上将所有资产帮助网址转换为类似/assets/asset.png或类似的东西,/assets/stylesheet.css所以你应该能够通过assets在源网址中指定文件夹来做同样的事情.

  • 我认为它不适用于生产环境! (9认同)