Heroku上的DataMapper问题

时间:2011-08-03 23:05:14

标签: ruby heroku sinatra datamapper

我正在尝试将一个简单的应用程序部署到Heroku(Sinatra并使用DataMapper作为ORM),每当我尝试提交表单时,我都会收到这些错误:

2011-08-03T22:52:05+00:00 heroku[router]: GET pure-mist-880.heroku.com/public/css/raffler.css dyno=web.1 queue=0 wait=0ms service=4ms status=404 bytes=18
2011-08-03T22:52:06+00:00 heroku[nginx]: GET /public/css/raffler.css HTTP/1.1 | 12.185.40.153 | 340 | http | 404
2011-08-03T22:52:15+00:00 app[web.1]: DataObjects::SyntaxError - ser=jjimxarsyb&password=2QbwU-iBQ6IckNTQqQ05&host=ec2-107-20-254-131.compute-1.amazonaws.com&port=&path=/jjimxarsyb&query=&fragment=&adapter=postgres:
2011-08-03T22:52:15+00:00 app[web.1]:  /app/.gems/gems/dm-do-adapter-1.1.0/lib/dm-do-adapter/adapter.rb:114:in `execute_non_

...
2011-08-03T22:52:16+00:00 heroku[nginx]: POST / HTTP/1.1 | 12.185.40.153 | 297 | http | 500

我目前使用的设置行是(取自Heroku DevCenter):

DataMapper.setup(:default, ENV['DATABASE_URL'] || 'sqlite3://#{Dir.pwd}/entries.db') 

编辑:

我在我的.gems文件中添加了dm-do-adapter,解决了这个问题。现在,当我提交表单时,我仍然在浏览器中显示“内部服务器错误”,我的日志只显示:

2011-08-04T01:19:30+00:00 heroku[router]: GET pure-mist-880.heroku.com/ dyno=web.1 queue=0 wait=0ms service=54ms status=200 bytes=919
2011-08-04T01:19:30+00:00 heroku[nginx]: GET / HTTP/1.1 | 71.199.2.204 | 1218 | http | 200
2011-08-04T01:19:31+00:00 heroku[router]: GET pure-mist-880.heroku.com/public/css/raffler.css dyno=web.1 queue=0 wait=0ms service=2ms status=404 bytes=18
2011-08-04T01:19:36+00:00 heroku[router]: POST pure-mist-880.heroku.com/ dyno=web.1 queue=0 wait=0ms service=35ms status=500 bytes=30

我不知道为什么我的.css文件没有加载,以及为什么我提交表单时失败了。

如果您需要更多代码段,请与我们联系。提前感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

“public”不应该在任何地方分开你的路线。

来自sintra.rb intro documentation

  

请注意,公共目录名称不包含在URL中。文件./public/css/style.css可用作example.com/css/style.css

如果您将静态资产放在其他地方,您也可以自己定义:

set :public, File.dirname(__FILE__) + '/static'

关于最后一行,您是否有根post路由?类似的东西:

post '/' do
  #form processing using params[:input_name]
end

此应用程序是否在本地开发环境中运行?