Heroku图像腐败

时间:2012-08-16 14:53:17

标签: thin corruption

通过git将图像上传到heroku时,从Web服务器发送图像时图像已损坏。我一直试图通过再次转移g rm --cached images/contact-me.png然后转移g add images/contact-me.png来修复它,然后推送。

也;

xyz@co-data:~/labs/exposeit-site$ sha1sum images/contact-me.png 
2d319cd64e94afe7cdd169347653670a1dd82581  images/contact-me.png
xyz@co-data:~/labs/exposeit-site$ wget http://exposeit.herokuapp.com/images/contact-me.png
--2012-08-16 16:50:35--  http://exposeit.herokuapp.com/images/contact-me.png
Resolving exposeit.herokuapp.com (exposeit.herokuapp.com)... 50.19.121.246, 174.129.192.155, 184.73.155.93, ...
Connecting to exposeit.herokuapp.com (exposeit.herokuapp.com)|50.19.121.246|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1230115 (1.2M) [image/png]
Saving to: `contact-me.png'

100%[=================================================================================>] 1,230,115    963K/s   in 1.2s    

2012-08-16 16:50:36 (963 KB/s) - `contact-me.png' saved [1230115/1230115]

xyz@co-data:~/labs/exposeit-site$ sha1sum contact-me.png 
74d97745d35bb67e5517611b683ed461bd0c1686  contact-me.png

xyz@co-data:~/labs/exposeit-site$ g ls-files | grep contact-me
images/contact-me.png

这是Heroku的问题吗?

更新

Procfile:

web:  bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT 

2 个答案:

答案 0 :(得分:2)

所以答案是thin gem有一个错误,它接受字符串长度而不是作为底层图像的字节数组的长度。为什么它首先被转换为字符串,我不知道。

解决方案是添加到您的Gemfile:

 gem 'rack-jekyll', :git => 'https://github.com/adaoraul/rack-jekyll.git', :require => 'rack/jekyll'

...它将从github而不是RubyGems下载。

答案 1 :(得分:1)

怪异。不过,你看起来还不错。 http://exposeit.herokuapp.com/images/contact-me.png

最好在其他位置托管图片和静态内容,而不是将兆字节放在源代码管理中https://devcenter.heroku.com/articles/s3