我正在阅读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新手提供任何有用的东西。提前感谢任何建议!
答案 0 :(得分:2)
问题在于Cloud9使用的主机名。 Cloud9允许子域名中的下划线,而rails / rack不能处理这些下划线。如果您的工作区名称是rails_tutorial
,那么您将看到此错误。在这种情况下,简单的解决方案是创建一个新的工作空间并使用例如而是rails-tutorial
。
更新
Cloud9推出了一项更新,确保子域永远不会包含任何下划线,因此问题应该得到妥善解决。