我在使用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更宽松。
答案 0 :(得分:3)
如果没有显示图像,则不应该与时间戳是否存在有任何关系。事实上,没有附加时间戳,因为Rails无法在任何地方找到磁盘上的图像。
正如您所发现的,Heroku是区分大小写的(就像大多数* nix系统一样)。 Windows和OS X不区分大小写,这就是为什么它将notebook
和Notebook
视为localhost上的相同内容。