我正在编写一个简单的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
答案 0 :(得分:1)
如错误消息所示,这是您的路径问题。根据{{3}},默认情况下,File.read('public/spells.json')
会尝试在名为spells.json
的文件夹中查找public/
文件,请确保将json文件放在那里。
答案 1 :(得分:1)
你是如何运行该应用程序的?如果您通过机架或精简版使用此功能,则他们将无法提供public/
中的文件。
您也不需要设置
:public_folder,' public'
如果文件夹public/
存在,它将自动尝试从该文件夹提供文件。如果您使用的文件夹不是public/
,则只需设置该选项。