在JS中使用/ out ERB Ruby on Rails引用图像

时间:2014-09-27 19:04:23

标签: javascript ruby-on-rails asset-pipeline

我正在使用jquery.flipbook.js,https://gist.github.com/kgn/719686

并且需要以下代码:

$('img.intro').flipbook({
    'start': 0,
    'end': 137,
    'loop': false,
    'fps': 20,
    'mobileStep': 3,
    'images':"/intro_png/intro-png_.%2d.png" 
   // "url(/assets/intro_png/intro-png_%2d)"
});

上面的%2d需要迭代到png序列中的下一个图像。我不只是引用上面的一个文件,而是很多(138)。我在哪里可以将我的intro_png目录与所有PNGS放在一起,这样我就可以在不使用ERB代码的情况下引用它。如果在erb中解析上述内容,我相信%2d将失去它的含义,而rails很可能只会引用一个文件。

我试图将它们放在rails的公共目录中,但是当我尝试加载页面时,我仍然有138个404.

更新:我现在使用的方法如下:

    'images':"<%=asset_path('intro_png/intro-png_')%>"+'%2d.png'

如你所见,我试图用js部分连接红宝石部分。唯一的问题是ruby代码不是一个文件,直到用它解析js,所以我得到一个Sprockets::FileNotFound错误。无论如何都可以绕过这个错误吗?

还是另一种解决方法?

修改

我也愿意将这些文件放在PUBLIC目录中 我试过了

'images':'url("/intro_png/intro-png_%2d.png")'

无济于事。 叹息

更新2

图书馆确实解析了:404看起来像这样:

http://localhost:3002/asset-url('/intro-png_134.png') 404 (Not Found)

我很感激帮助,谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试: 'images':'asset-url("/intro_png/intro-png_%2d.png")'

image: = '<%= asset_path 'image.png' %>'但您需要将文件重命名为file.js.erb

如果任何此答案有效,请尝试在此处找到解决方案:asset_pipeline

<强>编辑

尝试这样的事情:http://jsfiddle.net/mLv2s/2/