2

我一直在尝试整合两个托管静态站点的教程:

基本上我希望能够做你在雪松堆栈上的旧竹教程中所做的事情。我可以让雪松教程工作,但是当我尝试修改它以提供文件时,我得到一个错误。

我看过下面的帖子,但是 github repo 似乎不再存在了,我无法弄清楚我哪里出错了。

当我尝试按照第一个教程在本地运行站点时,我收到以下错误:

martin@crunchbang:~/code/martinrichards.me$ rackup -p 9292 config.ru &
[2] 4065
martin@crunchbang:~/code/martinrichards.me$ /home/martin/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval':     /home/martin/code/martinrichards.me/config.ru:2: syntax error, unexpected tIDENTIFIER, expecting '}' (SyntaxError)
200, ... |env|"
...

我已经把到目前为止我所拥有的东西放在Github上,任何帮助都将不胜感激。

4

1 回答 1

2

好吧,首先,你config.ru的几乎完全是空的。看起来您正在遵循与 Heroku 教程相同的站点结构,所以从 config.ru 开始,如下所示:

use Rack::Static, 
  :urls => ["/stylesheets", "/images"],
  :root => "public"

run lambda { |env|
  [
    200, 
    {
      'Content-Type'  => 'text/html', 
      'Cache-Control' => 'public, max-age=86400' 
    },
    File.open('public/index.html', File::RDONLY)
  ]
}

由于您在 Cedar 上,因此使用 aProcfile来启动您的流程会很有帮助。因此,将一个名为Procfile(无扩展名)的文件添加到您的根目录,并将以下内容放入其中:

web: bundle exec rackup config.ru -p $PORT

那应该这样做。

如果你想使用 Sinatra,Heroku 为 Cedar 上的 Ruby 站点提供了分步教程:https ://devcenter.heroku.com/articles/ruby

编辑:

事实证明,您的config.ru. 这就是 GitHub 无法正确显示文件的原因。您的行尾是^MDOS/Windows/Mac OS 9 行尾。这就是为什么 Ruby 在第 2 行抛出错误 - 这是第一个换行符。不确定您使用的是什么文本编辑器,但它可能支持更改行尾。将它们切换到 Unix,一切都应该正常工作。如果您正在寻找可以执行此操作的文本编辑器,请查看Sublime Text 2。行尾功能位于“查看”菜单中。

由于您正在构建一个纯 Rack 应用程序,因此您实际上不需要Procfile.,因为默认的 Heroku Cedar buildpack 会config.ru为您检测到。但是,Procfile一旦您开始使用其他框架(如 Sinatra),它就会派上用场。另外,如果您使用的是 Mac,您可以使用Foreman来模拟 Heroku 的启动过程。请注意,Profile它没有扩展名并带有大写“P”。

于 2012-06-13T16:20:31.347 回答