使用Remotipart上传的Ajax文件适用于开发,406 on heroku

时间:2013-06-18 18:38:47

标签: ruby-on-rails-3.2 carrierwave jquery-file-upload remotipart

我在页面上有一系列远程表单,每个远程表单都应该能够在更新或创建对象时上传文件。我已经在开发过程中进行了彻底检查和测试,只要我使用Remotipart,这似乎工作得很好。

但是,今天早上我将更改推送到Heroku上的登台服务器,当我尝试使用文件上传提交其中一个表单时,我从服务器收到406 Not Acceptable响应。所以这里我的页面没有更新,因为我没有从服务器获得我期望的js模板响应。但是,如果我重新加载页面,我试图上传的文件显示就好了。

表单是使用simple_form(带remote: true)创建的,我使用Carrierwave with Fog将文件上传到S3(也在开发中测试过,所以我认为不是这样)。

据我所知,网络检查员会显示相同类型的数据。我发现请求有效负载没有显着差异。

我不知道我做错了什么(如果有的话)。有没有其他人经历过这个或者可能知道什么是错的?

更新

所以我至少想出了一件事。我的控制器只处理js格式请求。我通过重定向到另一个路径来处理html格式化的请求,并且该页面的html现在作为ajax响应发回。我似乎无法弄清楚为什么,当内容类型和开发和分段上的所有内容似乎相同时,响应会以错误的格式发送/呈现。

1 个答案:

答案 0 :(得分:0)

Welp,我解决了。原来javascript被包含在内,但没有中间件。仔细观察后,我发现我的一些宝石被放置在Gemfile中的assets组中,这些组将被包含在开发环境中,但不会被包含在生产环境中。

我将remotipart从资产组中移出,现在一切正常。