2017-08-09 14 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/フォルダとRailsはそれが一致するルートを探して前に一致するファイルのためのpublic/ディレクトリをチェックしますGET /cardgame.zipを受信すると、これは次のリンク

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

を作成します

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

を使用しています。静的ファイルを提供するコントローラがまったく必要ありません。

+0

これは完璧に働いた、ありがとう! –

関連する問題