2016-11-18 1 views
0

私のパブリックフォルダから.csvファイルをダウンロードするには単純なhrefリンクを設定しようとしていますが、「Failed - No File」すべての画像がロードされるため、私のパブリックフォルダへの他のすべてのパスが機能します。私は知らない何かを見逃しているような気がする。私はそうのようにパブリックフォルダを設定している次のようにパブリックフォルダから.csvファイルをダウンロードするとファイルが見つかりませんでした

set :public_folder, File.dirname(__FILE__) + "/public" 

とhrefがある:

<a href="/csv_file/<%[email protected]%>" download="updated_<%[email protected]%>" style="text-align: center;" download>Download</a> 

私は、これは十分な情報であると思います。ありがとう

+0

生成されたhrefは、期待どおりのものですか?また、あなたのルートで/ publicを使用していません。 –

+0

はい、テキストが正しく、ダウンロードされたファイル名(ファイルはありません)は正しいものであり、リンク上をホバリングすると正しいパスが表示されます。 – Wazza

+0

生成されたHTMLとは何ですか? '@ file.name'は有効ですか?変数を使用して名前を定義しない限り、イメージの読み込みはあまり意味を持ちません。 「[mcve]」を読んでもう少し詳しくお聞かせください。 –

答えて

-1

File.dirname( _ FILE _ _)は相対パスを返します。代わりにFile.expand_path(_ _ FILE _ _)を使用してみてください。

+0

私はあなたの提案を試みましたが、同じ結果が得られました。ありがとうtho – Wazza

+0

相対パスからフルパスへの切り替えは、特にファイルを扱うときに違いはありません。 –

0

プロジェクトの構造例。

$ tree 
. 
├── app.rb 
├── Gemfile 
├── public 
│   └── lorem.csv 
└── views 
    └── index.erb 

私は私が得るもの、(@fileなど、あなたのケースで)ローカル変数を省略プロジェクト

#app.rb 
require 'sinatra' 

set :public_folder, File.dirname(__FILE__) + "/public" 

get '/' do 
    erb :index 
end 

ビューファイル

#index.erb 
<a href="/lorem.csv" style="text-align: center;" download>Download</a> 

ダウンロードリンクをクリックすると設定しましたは、

enter image description here

あなたのすべきことは、あなたのビューの最終的なURLを確認することです。またルートブロックを共有してください。

関連する問題