RailsTutorial.org第1章 - 第一次运行服务器时出错:Rack :: Lint :: LintError at / env缺少必需的密钥SERVER_NAME

时间:2014-10-21 13:40:42

标签: ruby-on-rails railstutorial.org

我正在阅读Hartl的Rails教程的第3版,每当我运行网络服务器并在section 1.3.2中请求主页时,我都会收到此错误:

Rack::Lint::LintError at /
env missing required key SERVER_NAME

Ruby    /usr/local/rvm/gems/ruby-2.1.1@rails4/gems/rack-1.6.0.beta/lib/rack/lint.rb: in assert, line 20
Web GET rails-tutorial-c9-ryderstorm_1.c9.io/

我正在使用cloud9,此时我所做的就是使用rails new安装服务器,切换到新创建的app目录,更新gemfile,然后运行bundle install。我已经尝试删除应用程序目录并重复教程步骤,但我遇到了同样的问题。

几个月前我在第2版的教程中看到了第5节,从未看到过这个错误。 Google搜索错误并没有为Rails新手提供任何有用的东西。提前感谢任何建议!

1 个答案:

答案 0 :(得分:2)

问题在于Cloud9使用的主机名。 Cloud9允许子域名中的下划线,而rails / rack不能处理这些下划线。如果您的工作区名称是rails_tutorial,那么您将看到此错误。在这种情况下,简单的解决方案是创建一个新的工作空间并使用例如而是rails-tutorial

更新

Cloud9推出了一项更新,确保子域永远不会包含任何下划线,因此问题应该得到妥善解决。