2012-01-31 108 views
0

我配置我的應用程序使用S3而不是本地文件系統存儲Paperclip文件,在生產中運行時。它在我生產的本地機器上正常工作(回形針在我的S3存儲桶中存儲附件)。回形針+ S3在本地工作,而不是在Heroku

在Heroku,這是行不通的,並且行爲怪異:

如果用戶註冊並附加資料照片並點擊提交,我得到了一個錯誤信息:

1 error prohibited this user from being saved: 
There were problems with the following fields: 

Avatar content type is not one of image/jpg, image/jpeg, image/png, image/gif 

而上傳的圖片是在正確的格式和不運行的Heroku回形針+ S3時,正常處理...

Heroku的日誌說什麼......

我公頃設置了heroku vars:heroku config:添加桶,access_key和secret_key。

我忘記了什麼嗎?

非常感謝您的幫助!

+0

我沒有回形針經驗。但是在heroku上你不能在文件系統上寫,所以你必須告訴papersclip使用heroku上唯一的可寫目錄。 – lucapette 2012-01-31 15:56:57

回答

3

好的......錯誤的猜測......它實際上不是Heroku的錯,但是Internet Explorer將圖像/ jpeg'文件轉換成'image/pjpeg'(即使jpg不是漸進式),並將'image/png'轉換爲'image/x-png'內容類型...

在本地機器上完成的測試是完成與Mozilla,而Heroku的測試與IE完成,這解釋了爲什麼我認爲這是Heroku ...

一切運行正常與Chrome和Mozilla,但如果您使用Internet Explorer,一定要添加'圖像/ pjpeg','image/pjpg'和'image/x-png '到驗證中接受的圖像格式列表!

+0

謝謝爲了添加解釋!幫助我們都記得把蘋果與蘋果進行比較,或者在這種情況下,IE瀏覽器到IE瀏覽器! – 2012-02-16 20:53:42

0

由於某種原因,這看起來像內容類型未被驗證爲正確。這應該也會失敗,如果你在本地生產模式下運行你的應用程序(因此判斷Heroku不等於)

+0

我確認在本地運行應用程序模式並不會給出任何錯誤(.jpg圖像保存在S3目錄中,一切都很流暢,並且一切正常),並且只有在Heroku上運行應用程序時,驗證纔會失敗... – citraL 2012-01-31 23:17:39

相關問題