1

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

然而,今天早上我将我的更改推送到 Heroku 上的暂存服务器,当我尝试通过文件上传提交其中一个表单时,我得到了406 Not Acceptable服务器的响应。所以这里我的页面没有得到更新,因为我没有从服务器获得预期的 js 模板响应。但是,如果我重新加载页面,我尝试上传的文件会显示得很好。

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

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

我不知道我做错了什么(如果有的话)。有没有其他人经历过这种情况,或者可能知道出了什么问题?

更新

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

4

1 回答 1

0

嗯,我解决了。原来 javascript 被包括在内,但没有一个中间件。经过仔细检查,我发现我的一些 gem 放在assetsGemfile 中的组中,这将包含在开发环境中,但不包含在生产环境中。

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

于 2013-07-08T18:39:12.807 回答