简单的Sinatra路由Json文件

时间:2013-08-28 08:34:06

标签: ruby json sinatra

我正在编写一个简单的Sinatra Api,它返回特定URL的Json文件。

这是server.rb的代码

require 'sinatra'
set :public_folder, 'public'
get '/' do
    'Hello world!'
end

get '/api/spells' do
    content_type :json
    File.read('public/spells.json')
end

但是,我一直收到这个没有这样文件的错误。请帮忙!谢谢!

 Errno::ENOENT at /api/spells
 No such file or directory - /spells.json

2 个答案:

答案 0 :(得分:1)

如错误消息所示,这是您的路径问题。根据{{​​3}},默认情况下,File.read('public/spells.json')会尝试在名为spells.json的文件夹中查找public/文件,请确保将json文件放在那里。

答案 1 :(得分:1)

你是如何运行该应用程序的?如果您通过机架或精简版使用此功能,则他们将无法提供public/中的文件。

您也不需要设置

:public_folder,' public'

如果文件夹public/存在,它将自动尝试从该文件夹提供文件。如果您使用的文件夹不是public/,则只需设置该选项。