首页 > 解决方案 > 使用 link_to 助手生成的 Ruby on Rails 链接在 Chrome 中不再有效

问题描述

Chrome 最近进行了很多更改,其中一个更改了我用来检索存储在数据库中的与父记录相关的文档的代码语句。上传文件和创建附件关系的操作正在运行,所以我的用户仍然可以添加文档。他们不能再下载和查看存储的文档附件。该代码正在使用 link_to 辅助方法,并且似乎正在正确构建链接,并通过它仍然可以使用 Edge 进行验证,因此我的用户有一个丑陋的解决方法,但我需要了解正在发生的事情。我已经确认确实是 Chrome 的问题,因为起初我无法在开发中重新创建缺陷(直到我将 Chrome 浏览器更新到当前版本。)现在我可以在我的开发环境中重新创建缺陷。

单击我表单中的链接时,Chrome 会显示一个错误屏幕,其中包含以下文本:

This page isn't working
(*localhost*) sent an invalid response
net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION

如果我使用开发人员工具提取链接并尝试在空的浏览器窗口中执行它,我会得到同样的错误。

链接是这样构造的:

<a href="/attachment/(*record-key-value*)/(*name-of-the-file attachment*)">(*name of the file attachment*)</a>

在你问之前,是的,我已经确认我的文件名中没有逗号或引号!哈哈

我希望某个地方的某个人可以为我指出一个解决方案,希望它很简单,也许很明显,我可以用它来让我的 Web 表单再次与 Chrome 很好地配合使用 - 应用程序代码更改、Web 服务器配置(我在 RHEL7 Apache 上运行在生产中和 Puma 正在开发中,我的数据库是 Oracle,我正在使用 Ruby 2.3.6 和 Rails 5.1.5 以及许多宝石进行构建)。

我希望我已经涵盖了所有相关点。感谢您花时间阅读这篇文章!

标签: ruby-on-railsgoogle-chrome

解决方案


问题已通过将 gem attach 升级到版本 >= 1.0.5 解决。非常感谢 gem 作者的出色响应。


推荐阅读