我刚刚开始研究sinatra
,现在我的应用程序无法导航到路由并从db获取数据,我总是得到404.这就是我正在做的。
app
|---->helpers
|----->models
|----->public
|----->routes
| |------->candidate.rb
| |------->init.rb
|----->app.rb
|----->config.ru
require './app'
run MyApp
require 'json'
require 'sinatra'
require 'data_mapper'
require 'dm-migrations'
require 'sinatra/cross_origin'
require 'logger'
require './models/init'
require './helpers/init'
require './routes/init'
class MyApp < Sinatra::Base
configure :development do
enable :cross_origin
DataMapper::Logger.new($stdout, :debug)
DataMapper.setup(
:default,
'mysql://root:@localhost/hackerrank'
)
end
get '/' do
File.read(File.join('public', 'index.html'))
end
DataMapper.finalize
end
bundle exec rackup -p 4567 config.ru
candidate.rb中的 api是正确的,但如果我尝试以http://localhost:4567/#/recruiter
的身份访问资源,我将获得404。
我无法弄清楚我在这里做错了什么。
答案 0 :(得分:0)
你得到的是404,因为GET'/'仅适用于根页面而你正在尝试加载/招募人员。您可以将其更改为GET'/:pagename',这样可以立即解决404问题。
答案 1 :(得分:0)
您的代码库看起来很好。当您从终端运行Sinatra应用程序时,每个请求都会显示一个日志行,例如
127.0.0.1 - - [02/Jan/2016 00:43:53] "GET / HTTP/1.1" 200 - 0.0033
确保您看到的HTTP动词和/或端点/路由是您期望的那个(也许您在访问资源时发出POST请求?)