如何在子目录中调用图像?当我推向生产时,Rails 4应用程序中断

时间:2014-03-25 05:11:12

标签: ruby-on-rails asset-pipeline

我有一个可以在开发中表现良好的rails应用程序,但是当我推向生产时,它会中断。在我将/gifs子目录添加到/images目录之前,它工作正常。

我在目录中拉随机gif并显示它。

<%= image_tag "assets/gifs/#{rand(10)}.gif" %>

我也试过

<%= image_tag "gifs/#{rand(10)}.gif" %>

<%= asset_url("gifs/#{rand(10)}.gif") %>

但没有任何效果。我应该如何构建这个?

1 个答案:

答案 0 :(得分:0)

你试过/资产吗?像这样:

<%= image_tag "/assets/gifs/#{rand(10)}.gif" %>

我会在没有插值的情况下开始,以确保您可以看到图像,然后添加变量。

编辑:很抱歉快速拍摄,我觉得这样,我觉得可以修复它。我认为你真正需要的是告诉你的config / environments / production.rb你想要预编译那些文件夹......在开发中,它会很乐意为你包含一切,但在生产中,它需要更具选择性,僵硬的(其他地方有各种解释)。

试试这个: 打开配置/

查找以下行:config.assets.precompile并将子文件夹添加到其中。

config.assets.precompile += [ 'gifs/*.gif']

如果您决定将其他资源组织到与控制器相关的子文件夹(我喜欢这样),您还需要在这里添加:(例如:本地,资源,项目,共享子文件夹)

config.assets.precompile += [ 'local/*.css', 'resources/*.js', 'projects/*.js', 'shared/*.js', 'ui/*.js', 'admin.a    pp.js', 'jquery.tablesorter.min.js', 'date-picker.js', 'date_extras.js', 'jquery.tablesorter.min.js']

希望这有帮助!