2017-08-09 137 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

完美的工作,謝謝! –