2017-08-09 93 views
0

我最近为一个想要免费下载他们以.zip文件形式制作的纸牌游戏的人制作了一个网站。在Rails 5中放置可下载文件的正确位置

我有下载工作,但想知道是否有一个“正确”的地方把公共可下载的文件根据Rails。当我把.zip文件放入我的公共文件夹并更改我的download_cards方法以反映更改时,我收到“找不到文件”错误消息。

这是我下载安装:

控制器:

class DownloadsController < ApplicationController 
    def download_cards 
     send_file "#{Rails.root}/app/assets/downloads/cardgame.zip", type: "application/zip", x_sendfile: true 
    end 
end 

路线:

Rails.application.routes.draw do 

    root 'static_pages#home' 

    get 'download_cards', to: "downloads#download_cards" 

end 

查看:

<%= link_to "download the cardz", download_cardz_path %> 

回答

3

你可以直接将文件放在该public/文件夹,然后用

<%= link_to "Download Card Game", "/cardgame.zip" %> 

这将创建一个下面的链接

<a href="/cardgame.zip">Download Card Game</a> 

当Rails的接收GET /cardgame.zip它将检查public/目录中匹配的文件寻找匹配的路由前。完全不需要控制器来提供静态文件。

+0

完美的工作,谢谢! –