rails 从公共文件夹下载文件

Posted

技术标签:

【中文标题】rails 从公共文件夹下载文件【英文标题】:rails download file from public folder 【发布时间】:2019-01-19 17:09:52 【问题描述】:

在我的本地,我写过

   <%= link_to 'App', "/App.apk", data:  no_turbolink: true  %>

工作正常 只需下载公共文件夹中的 App.apk 文件

但在生产中,相同的链接给出了错误

 Not Found

 The requested URL /App.apk/ was not found on this server.

谁能告诉我为什么它的行为不同 在不同的环境中

提前谢谢你

【问题讨论】:

你应该在app/config/environments/production.rb中添加这一行config.serve_static_assets = true 感谢您的回复,但没有成功 @Anjalikhant 请检查我的答案,这对你有用吗? 是的,请给我半小时,我正忙于其他工作 如果文件存在于公共目录中,您是否检查了服务器?你能查一下File.exist?("#Rails.root/public/app.apk") 【参考方案1】:

不要在直接链接中添加路径,而是创建一个从公共文件夹下载文件的操作。

routes.rb

get 'download_apk'

在您的控制器中添加以下下载 apk 文件的操作

def download_apk
  send_file("#Rails.root/public/App.apk")
end

【讨论】:

以上是关于rails 从公共文件夹下载文件的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3.2 Nginx Unicorn 总是尝试从公共文件夹加载 index.html (403)

在 Rails 的公共文件夹下提供静态文件是不是很好?

如何从 URL 下载文件并将其保存在 Rails 中?

如何在 Rails 5.x.x 应用程序中以 Zip 格式从 S3 下载多个文件?

如何从Rails控制台中需要“Bearer Token”的URL下载文件?

在控制器操作中从公共服务文件