2012-08-16 294 views
1

當通過git將圖像上傳到heroku時,圖像從Web服務器發送時會損壞。我一直試圖通過再次登錄g rm --cached images/contact-me.png然後g add images/contact-me.png來解決問題,然後再推送。Heroku圖像損壞

另外;

[email protected]:~/labs/exposeit-site$ sha1sum images/contact-me.png 
2d319cd64e94afe7cdd169347653670a1dd82581 images/contact-me.png 
[email protected]:~/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] 

[email protected]:~/labs/exposeit-site$ sha1sum contact-me.png 
74d97745d35bb67e5517611b683ed461bd0c1686 contact-me.png 

[email protected]:~/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

所以答案是,thin寶石有需要,而不是字節數組的長度是字符串長度的錯誤底層圖片。爲什麼它會首先被轉換成一個字符串,我不知道。

的解決方案是增加,到你的Gemfile:

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

...,它會從GitHub,而不是RubyGems的下載。

1

奇怪。儘管如此,你看起來還好吧。 http://exposeit.herokuapp.com/images/contact-me.png

是最好的託管圖片和靜態內容的其他地方,而不是把兆字節的源代碼控制https://devcenter.heroku.com/articles/s3

+0

當我要求該文件時,鞋子已被切斷。由於我們現在只是測試Heroku(意思是說,我們還沒有投入),所以我們現在不在S3上託管它們。此外,這些圖像不是靜態的,但可以在提交之間進行更改,因爲我同時執行編碼和圖形... – Henrik 2012-08-17 07:31:09

+0

您可以通過在服務器上運行「sha1sum」來測試映像在上載過程中是否損壞https:// devcenter .heroku.com/articles/ssh-access – 2012-08-17 12:59:14

+0

使用'heroku run bash'在bash中映像散列正確。 – Henrik 2012-08-20 15:10:22