在生产中运行时,我将我的应用配置为使用S3而不是本地文件系统来存储Paperclip文件。它在我的本地机器上正常生产(回形针在我的S3桶中存储附件)。
在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的情况下运行paperclip + s3时会正常处理......
Heroku日志什么也没说......
我已经设置了heroku vars:heroku config:add bucket,access_key和secret_key。
我忘记了什么吗?
非常感谢任何帮助!!
答案 0 :(得分:3)
OK ...错误的猜测...它实际上不是Heroku的错,但是Internet Explorer将'image / jpeg'文件转换为'image / pjpeg'(即使jpg不是渐进式的)并转换'image / png'to'image / x-png'内容类型......
在我的本地机器上完成的测试是使用Mozilla完成的,而Heroku上的测试是使用IE完成的,这解释了为什么我认为它是Heroku ......
Chrome和Mozilla的一切运行良好,但如果您使用的是Internet Explorer,请务必将“image / pjpeg”,“image / pjpg”和“image / x-png”添加到您所接受的图像格式列表中验证!
答案 1 :(得分:0)
由于某种原因,内容类型看起来没有被验证为正确。如果您在本地生产模式下运行应用程序(因此将Heroku排除在等式之外),这也应该失败