【发布时间】:2016-09-15 14:05:35
【问题描述】:
我最近将我的应用程序升级到 Rails 5 并且我的下载停止工作。当我点击下载按钮时,浏览器挂起,没有任何反应。
class DownloadsController < ApplicationController
def download
send_file(
"#{Rails.root}/public/file.rtf",
filename: "file.rtf",
type: :rtf,
disposition: "attachment"
)
end
end
我有 rtf mimetype
Mime::Type.register "text/richtext", :rtf
显示一切正常的日志
Sent file /home/deploy/app/releases/20160518213049/public/file.rtf (0.4ms)
I, [2016-05-18T17:34:48.435946 #20202] INFO -- : [d02e8ea3-53da-440d-b3b1-cc6bfd6524dc] Completed 200 OK in 17ms (ActiveRecord: 4.4ms)
【问题讨论】:
-
所有浏览器都会出现这种情况吗?另外,您是否尝试查看 devtools 的网络选项卡并查看发生了什么?
-
是的,它发生在 Safari、Chrome 和 Mozilla 中。 Devtools 显示 GET 200 xhr 2s。也许值得一提的是,我使用 ActionCable
-
哦,是的...您还不能通过 ajax/ws 调用保存文件 :) 一种解决方法是创建一个 iframe 并将其源设置为您的下载 URL。
-
实际上,我没有进行任何 ajax 调用。这只是规则 link_to 标签。然而,turbolinks 做到了。将
'data-turbolinks' => false添加到link_to标签解决了这个问题。不知道为什么它以前没有这个标签就可以工作 -
这很奇怪。我也遇到了同样的问题,这对我也有用。 github上是否有任何问题开放?感谢您分享修复程序。
标签: ruby-on-rails download mime-types