Rails 3.1 + Heroku Cedar – 未提供静态图像资源
我在Heroku Cedar上部署了一个Rails 3.1应用程序。 由于某些原因,我的静态图像资产没有被提供:
2011-06-23T18:14:13+00:00 app[web.1]: Started GET "/assets/me_reminder-30f9d1dead32e12238888adbee4b92d3.png" for 98.207.60.248 at 2011-06-23 18:14:13 +0000 2011-06-23T18:14:13+00:00 app[web.1]: Served asset /me_reminder-30f9d1dead32e12238888adbee4b92d3.png - 200 OK (0ms) (pid 1) 2011-06-23T18:14:13+00:00 app[web.1]: cache: [GET /assets/me_reminder-30f9d1dead32e12238888adbee4b92d3.png] miss, store 2011-06-23T18:14:13+00:00 heroku[router]: GET xxxx.herokuapp.com/assets/me_reminder-30f9d1dead32e12238888adbee4b92d3.png dyno=web.1 queue=0 wait=0ms service=35ms status=200 bytes=0
如您所见,它返回0字节的内容。 不用说,没有图像显示。
但是,我所有其他静态资产(css,javascripts)都正确提供。 知道这里有什么问题吗?
顺便说一句,我在heroku上有另一个Rails 3.1应用程序,它运行得很好,所以我不认为这是链轮等问题。
谢谢。
我有同样的问题。 在config/environments/production.rb
文件中,注释:
config.action_dispatch.x_sendfile_header = "X-Sendfile"
相反,有:
config.action_dispatch.x_sendfile_header = nil # For Heroku
这也是推荐的方法。 正如Heroku文档中所建议的那样。
适合我。
我有同样的问题。 将production.rb文件配置更改为
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
从
config.action_dispatch.x_sendfile_header = "X-Sendfile"
为我工作。 因为Heroku在前面使用了nginx。
我有这个问题因为我在使用HTML引用资产管道中的图像。 例:
图像资产可以在本地工作,但不能在Heroku上工作。 切换到使用Rails的image_tag
视图助手解决了这个问题。 例:
<%= image_tag "hello.jpg" %>
如果我没记错的话,在资产管道中使用图像会有一些意想不到的行为。 为避免这种情况,您可以将它们保留在public/
就像之前版本的rails一样。
请参阅此处的讨论。
- 在Heroku上可以实现像websocket一样的实时行为吗?
- 在rails上的ruby中将sqlite更改为PostgreSQL
- Rails:如何在使用Heroku时获取当前用户的时区
- 无法在Heroku上部署Ruby on Rails应用程序?
- 未定义的方法auto_upgrade! 将Sinatra / DataMapper应用程序推送到Heroku时
- ExecJS :: ProgramError:意外的令牌:名称(选项)
- RoR2.8和Heroku:我安装了一个插件,在本地工作,现在heroku根本不起作用
- ActiveRecord :: StatementInvalid:PG :: ReadOnlySqlTransaction: – 即使在取消关注后,Heroku数据库仍然只读
- 有没有办法为heroku上的应用程序设置简单的http身份validation?