在Rails中提供文件的最简单方法是什么?
我的意思是:我想转到http://myserver.com/assets/arbitraryfile.arbitraryformat,然后在浏览器中加载arbitraryfile.arbitraryformat
,让浏览器决定是下载还是显示或其他任何东西。 (特别是我计划制作一个从服务器调用* .js文件的书签,然后加载* .css文件并从中下载字体* .tty文件。)
目前我已经assets
资源路由到assets#show
行动,但我完全不确定如何编码我的show
。
答案 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