2011-05-06 41 views
3

我想問你是否可以顯示數據,我已經將它保存到/ public/my_dir_for_data中。ruby​​ on rails - 訪問公共目錄時出錯

如果我試圖從這個目錄顯示圖像,我會得到「路由錯誤」。 可能當我想將數據保存到我的應用程序的根目錄時,例如 /my_data,一切都會好的......但我喜歡RoR的 應用的這種結構,我會很高興,如果我能使用的目錄中 /公...

存在任何方式,如何去做? (同時安全?)

+0

您使用什麼代碼來嘗試和顯示圖像? – 2011-05-06 17:33:43

+0

不,我沒有使用任何代碼,我在我的瀏覽器中編寫了http://www.domain.com/my_dir_for_data/example.png。我猜rails認爲「my_dir_for_data」是一個控制器。 – 2011-05-06 17:43:13

回答

5

如果文件存在,rails將不會進入控制器堆棧,如果找不到該文件,它會認爲這是一個動態操作並進入控制器堆棧。

因此,如果一個文件存在於#{Rails.root}/public/directory/file.png並且您導航到domain.com/directory/file.png它應該工作呈現該文件。

你確定所有的目錄和文件名都是相同的雙方?

0

上述問題是由於config/environment/production.rb文件中的配置設置引起的。 如果您添加下面的行,問題將被解決。 config.serve_static_assets = true

但是,這條線已被棄用,因爲軌道4,它將被刪除在軌道5.0。爲此,引入了下面的新配置參數。您將收到如下警告,但會提供靜態文件。

棄用警告:配置選項config.serve_static_assets已更名爲config.serve_static_files闡明其作用(它只是使服務於public夾中的一切,是無關的資產管道)。 Rails 5.0中將刪除serve_static_assets別名。請相應地遷移您的配置文件。

所以,如果您使用config.serve_static_assets參數爲true,那麼也會達到此目的。