如何在 rails 中创建动态创建的链接帮助程序



我有一个文件夹,里面有大约 10 张图片,这些图片是在我的网页上随机拉取的。目前代码如下所示:

<%= link_to image_tag("/assets/products/default_products/default_product_#{rand(1..9)}.jpg"), product%> 

这在开发中工作正常,但在生产中,当 jpeg 的名称被更改时,它不起作用。它会生成如下所示的链接:

/assets/products/default_products/default_product_6.jpg

当所有图像实际上都已重命名为如下所示时:

default_product_3-af2af1f642a10926ed5cfb29aeb780e6.jpg

我怎样才能做到这一点?

Rails在每个文件名中插入一个MD5指纹(af2af1f642a10926ed5cfb29aeb780e),以便Web浏览器缓存该文件。

从文档:

默认情况下,为生产启用指纹识别,在 所有其他环境。您可以在您的 通过 config.assets.digest 选项进行配置。

如果你制作一个现有图像的数组,然后随机选择其中一个而不是生成文件名怎么办?

pictures = %w(pic_1 pic_2 pic_3)
image_tag("/path/to/files/#{pictures.sample}")

这样您就可以继续指纹识别。

啊...没关系。我的原始代码实际上有效,我只需要从link_tag助手中删除"/assets/"部分。

所以这适用于指纹识别:

<%= link_to image_tag("products/default_products/default_product_#{rand(1..9)}.jpg"), product%> 

最新更新