2

解決策が見つかりました!

これは、Mongrel + Rails 2.3.8 (Rails+cPanel で使用される Web サーバー) に固有のバグのようです。これが、cPanel からアプリを実行した場合にのみ表示され、スクリプト/サーバーを介してローカルで提供する場合には表示されない理由です。

詳細については、 https ://rails.lighthouseapp.com/projects/8994/tickets/4690-mongrel-doesnt-work-with-rails-238 を参照してください。

見つかった最終的な回避策は、次のファイルを新しい Rails 2.3.8 アプリの /config/initializers ディレクトリに配置することです。

https://gist.github.com/471663

このイニシャライザを追加すると、Rails アプリは期待どおりに機能します。

元の質問:

railsforzombies.org の非常に役立つチュートリアルを読み終えたので、RoR のテスト インストールを開始する準備が整いました。私のサイトは、cPanel を使用して共有ホスト上にあります。cPanel を使用してテスト アプリケーションを作成し、~/rails_apps/blog にセットアップしました。mydomain.com/testblog/ を mydomain.com:12002 にリダイレクトする書き換えを作成しました。これは、cPanel が RoR アプリを実行しているポートです。また、開発モードで cPanel を介してアプリケーションを起動しました。

mydomain.com/testblog/ にアクセスすると、RoR アプリが作成され、機能していることを知らせる役立つページが表示されます。いいですよね?まあ、それほど速くはありません。

guides.rubyonrails.org/v2.3.8/getting_started.html の Getting Started ガイドに従い、ステップ 4 に進みます。app script/generate controller home index/views/home/index で結果のビューを実行して編集しました。 html.erb. それはただの単純なことです

<h1>Hello rails!</h1>

ただし、mydomain.com/testblog/home/index (末尾の「/」の有無にかかわらず) にアクセスすると、ブラウザーに空白のページが表示され、何も表示されません (ソースを表示しても何も表示されません)。

気が狂わないように、Rails アプリの /public ディレクトリにテキスト ファイルを置き、mydomain.com/testblog/test.txt にアクセスすると、適切に提供されます。したがって、cPanel からの Apache の書き換えが正常に機能していることはわかっています。

何か案は?明らかなことを見落としていると思いますが、今のところ空白を描いています。

参考までに、私は cPanel 11、Ruby 1.8.7、Rails 2.3.8 で実行しています。Rails 3.0 を走らせたいと思っていますが、共有ホストは今のところ無理だと言っています。

編集して追加:

上記のホームコントローラーとインデックスアクションを生成すると、routes.rb ファイルに次の行が追加されました (チェックしたところ、そこにありました)。

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

したがって、mydomain.com/testblog/home/index は app/views/home/index.html.erb にマップする必要があります。

調査の詳細を追加して再度編集しました。

これに光を当てるかもしれない何かを見つけました。cPanel で Rails アプリを停止した場合は、PuTTY 経由でログインし、開発サーバーを起動しscript/serverて実行します。

curl http://0.0.0.0:3000/home/index

開発サーバーは応答します

<h1>Hello Rails!</h1>

からapp/views/home/index.html.erb。だからそれはそこで働いています。mydomain.com/testblog/home/index から空の応答を受け取るのは、cPanel で Rails アプリを起動したときです (ポート 12002 で実行されていることがわかります)。から空の応答も取得します

curl http://0.0.0.0:12002

サーバー上でSSH経由で実行した場合。したがって、Rails ではなく、cPanel ではおかしなことのように見えます。

4

1 に答える 1

0

アプリの app/public ディレクトリにある index.html ファイルを確認して削除しましたか?

また、home コントローラーを生成した後、routes.rb を新しいコントローラーとアクションを認識するようにセットアップしましたか?

于 2011-02-08T20:52:10.480 に答える