在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变量之前很好地在服务器上呈现。
注意:我知道我不能预处理/指纹这些图像并将它们放在公共/资产中并静态地提供它们。但是,我想使用指纹识别来更新缓存。
答案 0 :(得分:4)
你不能:在渲染视图(这里是javascript)之前运行erb / haml的插值。
你应该在ruby中逐出你的逻辑,以便动态地提供不同的资产文件。
答案 1 :(得分:0)
如果图像数量合理,您可以使用ERB在所有图像的Javascript(p.e.字典)中构建数据结构,并在以后选择正确的图像名称。