从Javascript变量图像名称访问Rails 4指纹图像资产

时间:2014-03-15 16:00:56

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

在Heroku上使用Rails 4,预编译资产并添加指纹。

我可以使用以下方式从我的erb文件中访问资产:

<%= asset-url("image_name.jpg") %>

但是,我正在对控制器进行ajax调用以获取对象列表,并且我从每个对象构建一个图像名称,例如image-1.jpg,image-2.jpg,这里的数字来自javascript变量。这些图像位于assets / images目录中。

如何使用javascript变量链接到它们,如下所示:

<%= asset-url("image-javascriptVariable.jpg") %>

这显然不起作用,因为它在客户端呈现javascript变量之前很好地在服务器上呈现。

注意:我知道我不能预处理/指纹这些图像并将它们放在公共/资产中并静态地提供它们。但是,我想使用指纹识别来更新缓存。

2 个答案:

答案 0 :(得分:4)

你不能:在渲染视图(这里是javascript)之前运行erb / haml的插值。

你应该在ruby中逐出你的逻辑,以便动态地提供不同的资产文件。

答案 1 :(得分:0)

如果图像数量合理,您可以使用ERB在所有图像的Javascript(p.e.字典)中构建数据结构,并在以后选择正确的图像名称。