我一直在尝试整合两个托管静态网站的教程:
基本上我希望能够在雪松堆上的旧竹教程中做你做的事情。我可以使用雪松教程,但是当我尝试修改它来提供文件时,我收到了一个错误。
我看过following post,但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上,我们将非常感谢任何帮助。
答案 0 :(得分: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,因此使用Procfile
启动流程会很有帮助。因此,在您的根目录中添加一个名为Procfile
(无扩展名)的文件,并在其中加入以下内容:
web: bundle exec rackup config.ru -p $PORT
应该这样做。
如果您想使用Sinatra,Heroku将为Cedar上的Ruby站点提供逐步的tuturioal:https://devcenter.heroku.com/articles/ruby
修改强>
事实证明,config.ru
中存在行结尾问题。这就是为什么GitHub没有正确显示文件的原因。您的行结尾是^M
,它们是DOS / Windows / Mac OS 9行结尾。这就是Ruby在第2行抛出错误的原因 - 这是第一次换行。不确定您使用的文本编辑器,但它可能支持更改行结尾。切换它们Unix,一切都应该正常工作。如果您正在寻找可以执行此操作的文本编辑器,请查看Sublime Text 2。行结尾功能位于“查看”菜单中。
由于您正在构建纯Rack应用程序,因此您实际上不需要Procfile
,因为默认的Heroku Cedar buildpack将为您检测config.ru
。但是,一旦开始使用其他框架(如Sinatra),Procfile
就派上用场了。另外,如果您使用的是Mac,则可以使用Foreman来模拟Heroku的旋转过程。请注意,Profile
没有扩展名,大写字母为“P”。