2

静的サイトをホストするための 2 つのチュートリアルを統合しようとしています。

基本的には、杉のスタックで古い竹のチュートリアルで行うことを実行できるようにしたいと考えています。cedar チュートリアルを動作させることはできますが、ファイルを提供するように変更しようとするとエラーが発生します。

次の投稿を見てみましたが、github リポジトリはもう稼働していないようで、どこが間違っているのかよくわかりません。

最初のチュートリアルに従ってサイトをローカルで実行しようとすると、次のエラーが発生します。

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

ProcfileCedar を使用しているため、a を使用してプロセスを開始すると便利です。したがって、(拡張子なし) というファイルProcfileをルートに追加し、その中に次のように記述します。

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

それはそれを行う必要があります。

Sinatra を使用したい場合、Heroku には、Cedar 上の Ruby サイトに関する段階的なチュートリアルがあります: https://devcenter.heroku.com/articles/ruby

編集:

結局のところ、あなたは行末の問題を抱えていますconfig.ru. そのため、GitHub はファイルを正しく表示していません。あなたの行末は^M、DOS/Windows/Mac OS 9 の行末です。そのため、Ruby は 2 行目でエラーをスローしています。これは最初の改行です。使用しているテキスト エディターは不明ですが、おそらく行末の変更をサポートしています。それらを Unix に切り替えると、すべて正常に動作するはずです。これを実行できるテキスト エディターを探している場合は、Sublime Text 2を調べてください。行末機能は「表示」メニューにあります。

Procfile純粋な Rack アプリを構築しているので、デフォルトの Heroku Cedar ビルドパックが を検出するので、実際には は必要ありませんconfig.ru。ただし、Procfile他のフレームワーク (Sinatra など) を使い始めると便利です。さらに、Mac を使用している場合は、Foremanを使用して Heroku のスピンアップ プロセスをシミュレートできます。Profile拡張子がなく、大文字の「P」が付いていることに注意してください。

于 2012-06-13T16:20:31.347 に答える