Rails3和heroku image_path

时间:2010-09-27 22:28:01

标签: ruby-on-rails-3 heroku

我在使用image_path时未应用资产标签时间戳的问题。结果,不显示图像。这只有在我推送到heroku时才会发生。

代码:

<%= image_path 'notebook.png' %>

localhost结果:

/images/notebook.png?1284326123

Heroku结果:

/images/notebook.png

Heroku推送输出:

-----> Heroku receiving push
-----> Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.0
       All dependencies are satisfied
       Compiled slug size is 15.4MB
-----> Launching.... done

image_tag效果很好。我怀疑rails3_serve_static_assets有错。有什么想法吗?

更新

对Heroku文件系统的检查表明Notebook.png确实存在。

$ heroku console
Ruby console for myapp.heroku.com
>> `ls public/images`
=> "<bunch of files>\nNotebook.png\n<bunch of other files>"

而且存在问题。我的代码引用了'notebook',文件名为'Notebook'。显然localhost比Heroku更宽松。

1 个答案:

答案 0 :(得分:3)

如果没有显示图像,则不应该与时间戳是否存在有任何关系。事实上,没有附加时间戳,因为Rails无法在任何地方找到磁盘上的图像。

正如您所发现的,Heroku是区分大小写的(就像大多数* nix系统一样)。 Windows和OS X不区分大小写,这就是为什么它将notebookNotebook视为localhost上的相同内容。