gpt4 book ai didi

ruby-on-rails - Rails 4, Assets 管道导致用户可下载文件被下载两次

转载 作者:行者123 更新时间:2023-12-03 21:22:06 26 4
gpt4 key购买 nike

我的应用程序目录中有一个名为“uploads”的文件夹,用户可以在其中上传文件和下载文件。我不希望上传文件夹位于公共(public)目录中,因为我想控制下载授权。

在我的 Controller 中,我有:

send_file Rails.root.join('app', 'uploads', filename), :type => 'application/zip', :disposition => 'inline', :x_sendfile=>true

这实际上工作正常。问题是当我在生产服务器上时,当我运行 rake assets:precompile 并有一个 assets 目录时,文件会下载两次。第一次下载文件时,浏览器就像什么都没有发生一样(没有加载旋转),但我看到数据正在 Google Chrome 网络开发人员的网络选项卡中传输。然后在下载文件后,会出现一个提示,询问用户是否要下载文件。

删除公共(public)目录中的 Assets 文件夹可以解决这个问题,但我想使用 Assets 管道。我还尝试将 Assets 管道要求从 require_tree 更改为 require_directory。

有谁知道如何让 send_file 与 Assets 管道正常工作?

谢谢。

最佳答案

对于任何有这个问题的人,我都解决了。经过

'data-no-turbolink' => true 

进入 link_to 帮助程序以阻止 Turbolinks 干扰下载。

https://github.com/rails/turbolinks/issues/182

关于ruby-on-rails - Rails 4, Assets 管道导致用户可下载文件被下载两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com