2012-06-13 38 views
2

我一直在试图巩固两个教程托管静态网站:的Heroku雪松纯架静态站点

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

我曾看过following post,但github回购似乎不再起作用,我无法弄清楚我出错的地方。

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

[email protected]:~/code/martinrichards.me$ rackup -p 9292 config.ru & 
[2] 4065 
[email protected]:~/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了,任何帮助将非常感激。

回答

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) 
    ] 
} 

由于您使用的雪松,是有帮助的使用Procfile,以启动程序。因此,一个名为Procfile(没有扩展名)的文件添加到您的根目录,并把它里面的以下内容:

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

应该这样做。

如果你想使用西纳特拉,Heroku的有一步一步的tuturioal对雪松红宝石网站:https://devcenter.heroku.com/articles/ruby

编辑:

事实证明,您遇到线 - 在你的config.ru结尾的问题。这就是为什么GitHub没有正确显示文件。你的行结尾是^M,这是DOS/Windows/Mac OS 9行尾。这就是为什么Ruby在第二行发生错误 - 这是第一次换行。不确定你正在使用哪种文本编辑器,但它可能支持更改行尾。切换它们的Unix,并且都应该正常工作。如果您正在寻找可以做到这一点的文本编辑器,请查看Sublime Text 2。行尾功能位于“查看”菜单中。

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

+0

感谢您的答复,我config.ru是相同的你它只是似乎并不在github上观看时可显示完整的文件。你必须去“编辑这个文件”,你会看到完整的内容。 github上的错误? – Martinffx

+0

我已经更新了我的问题,当我尝试在本地运行时得到的输出。 – Martinffx

+0

原来你的问题是在你'config.ru'中的行尾。我更新了我的答案来解释。 – redhotvengeance