【问题标题】:RailsTutorial.org Chapter 1 - error on first server run: Rack::Lint::LintError at / env missing required key SERVER_NAMERailsTutorial.org 第 1 章 - 第一次服务器运行时出错:Rack::Lint::LintError at / env missing required key SERVER_NAME
【发布时间】:2014-10-21 13:40:41
【问题描述】:

我正在阅读新的第 3 版 Hartl's Rails 教程,每当我运行网络服务器并在 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 安装服务器,切换到新创建的应用程序目录,更新 gemfile,然后运行 ​​bundle install。我尝试删除应用程序目录并重复教程步骤,但我遇到了同样的问题。

几个月前,我浏览了第二版教程的第 5 部分,但从未见过此错误。谷歌搜索错误也没有为 Rails 新手提供任何有用的信息。提前感谢您的任何建议!

【问题讨论】:

  • 我也有同样的经历。我确定这是 cloud9 设置中的错误。我在我的 ubuntu 14.04 机器上本地安装了所有软件,并且能够毫无问题地运行该部分。
  • 我知道这是一个 Rails 问题,但如果您在使用 Sinatra 时遇到此问题,请将 --server webrick 添加到您的启动命令中。像这样:rackup --host 0.0.0.0 --port 8080 --server webrick --env development

标签: ruby-on-rails railstutorial.org


【解决方案1】:

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

更新:

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

【讨论】:

  • 这行得通,谢谢!几个月前,我早些时候在另一个 Cloud9 工作区遇到过这个问题,但忘记了下划线问题。现已启动并运行,谢谢!
  • 嗨 Fabian,这对我不起作用。我尝试更改工作区名称、应用程序名称,但这些都不起作用。我仍然遇到同样的问题。任何额外的见解或帮助将不胜感激。谢谢。
  • 没关系,我刚刚阅读了我的 gmail 帐户的解释,帐户上的用户名不能有下划线。由于历史原因,我很少使用gmail帐户。我已经删除了旧的 Cloud9 帐户,并在我的用户名中创建了一个没有下划线的帐户,这样一切正常。
猜你喜欢
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 2012-07-21
  • 2015-11-08
  • 2018-07-17
相关资源
最近更新 更多