2016-11-18 42 views
0

我想設置一個簡單的href鏈接從我的公用文件夾下載.csv文件,但點擊它只是說'失敗 - 沒有文件',但我知道所有其他路徑到我的公共文件夾工作,因爲所有的圖像加載。我覺得我想失去一些我不知道的東西。我已經設置了公用文件夾像這樣:從公用文件夾下載.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是否與您期望的匹配?您也不會在您的路線中使用/公開。 –

+0

是的,文本是正確的,下載的文件名稱(儘管沒有文件)是正確的,並且當懸停在鏈接上時顯示的路徑是正確的。 – Wazza

+0

什麼是生成的HTML? '@ file.name'是否有效?除非你使用變量來定義他們的名字,否則圖片加載並不會告訴我們多少。請閱讀「[mcve]」,並給我們更多的細節。 –

回答

-1

File.dirname(_ _ FILE _ _)返回相對路徑。嘗試使用File.expand_path(_ _ FILE _ _)。

+0

我試過了你的建議,但它給出了相同的結果。謝謝你 – 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

你應該做的是檢查視圖上的最終網址。也請分享路線塊。