现在看起来每个浏览器都支持HTML5 download attribute,我想知道在使用Rails的控制器中使用它而不是创建链接和使用send_file
是否有任何优点/缺点
答案 0 :(得分:1)
send_file
更通用,效率更高。
它的主要优点是它使用X-Sendfile响应标头。这样做是将文件的流式处理从Ruby卸载到服务器(例如Nginx或Apache),该服务器针对高吞吐量内容交付进行了优化。
普通'下载'链接保存目标,无论其上显示的是什么。例如,如果目标受会话保护,并且会话在您单击链接之前到期,则可能会出现问题。您最终会在不知情的情况下保存登录页面。使用send_file
,如果会话正常,您可以动态启动下载,否则会重定向到登录页面。
send_file
还允许您动态指定有意义的文件名,因此,如果您的链接指向/ users / 42,则可以将下载名称设置为" John Smith.csv&#34 ;而不是神秘的" 42"。