最简单的文件服务方式 - Ruby on Rails

时间:2016-07-02 02:40:57

标签: ruby-on-rails

在Rails中提供文件的最简单方法是什么?

我的意思是:我想转到http://myserver.com/assets/arbitraryfile.arbitraryformat,然后在浏览器中加载arbitraryfile.arbitraryformat,让浏览器决定是下载还是显示或其他任何东西。 (特别是我计划制作一个从服务器调用* .js文件的书签,然后加载* .css文件并从中下载字体* .tty文件。)

目前我已经assets资源路由到assets#show行动,但我完全不确定如何编码我的show

2 个答案:

答案 0 :(得分:4)

您将数据流式传输到浏览器,让它做任何需要做的事情。您可以使用两种rails方法之一来获得所需内容:

a)send_data

foo_data = "This is my data"
send_data(foo_data, filename: "foo_file.txt")

b)send_file(允许您使用路径)

send_file("my_app/assets/public/pdf/my_pdf.pdf", type: "application/pdf")

查看official doc

答案 1 :(得分:0)

我尝试了上述方法,但是它会自动将文件下载到磁盘上,这不是我想要的。

要在浏览器中打开和查看文件,我必须将文件移动到public/文件夹中,然后可以通过转到myappdomain.com/filename.pdf

进行访问。