人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby on Railsの質問です。「実践Ruby on Rails」という本を参考に簡単なプロジェクトを作ろうとしています。
rails *****
でプロジェクトを作成し、ディレクトリに移動して
ruby ./script/server
でWEBrickを起動し、ローカルの3000ポートに接続して動作確認というところでうまく行かなくなりました。ここで思ったのですが、WEBrick もWebサーバという事ならApacheのように公開ディレクトリが存在し、ログインユーザの作業ディレクトリからシンボリック・リンクをはるなどの作業が必要な気がするのですが、そうした記述が見つかりませんでした。そのあたりについて詳しく記しているページを教えてください。


よろしくお願いします。

●質問者: mine-D
●カテゴリ:ウェブ制作
✍キーワード:Apache Rails Ruby Ruby on Rails SCRIPT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● moro
●35ポイント ベストアンサー

http://www.ruby-lang.org/ja/man/?cmd=view;name=webrick

URLはWEBrickのマニュアルです。

WEBRickでも上記の作業が必要なのはその通りなのですが、Railsでscript/serverで起動する場合はその辺の設定がなされたWEBrickが起動するはずです。

つまり、Railsアプリを起動するだけであれば、特別な設定は不要なはずです。起動しないのは他の原因ではないでしょうか。

エラーが出ているということであればエラーの出力などがあれば、もう少し具体的にお答えできると思います。

◎質問者からの返答

ありがとうございます。マニュアルざっと読んでみますね。症状は404になります。


2 ● moro
●35ポイント

WEBrickで起動したRailsアプリケーション(というかRails用の設定で起動したWEBrick)はポートをまるっと占有します。

そのため、上記の例ではあとから起動しようとするfugaユーザはそもそもWEBrickを起動できません。

(script/server -p 3001 とかすれば3001で起動できます)

また、ドキュメントルートですが、Railsプロジェクとのpublic/ディレクトリをドキュメントルートとしてマウントします。

そのため、

http://localhost:3000/

#{RAILS_ROOT}/public を見に行きます。

もしかすると http://localhost:3000/hoge

を見ようとしていらっしゃるのかもしれませんが、この場合はRails的にはHogeControllerへのアクセスと解釈し、(そのコントローラがなければ)404を返します。

じゃあ、一台のサーバ(一つのポート)で複数のRailsアプリを起動できないのか、というと、できることはできます。

個々では具体的な方法は省略しますが、relative_url_rootなどをキーワードに検索するといろいろ出てくると思いますよ。

◎質問者からの返答

ありがとうございます!まるごと占有するんですね。理解しました。とりあえず、もう一度本を読み直し、public/ディレクトリを調べてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ