2

http://localhostでmod_railsを実行しているapache2.2があります。Railsアプリをhttp:// localhost/ railsBlogに置きたいです。それで、私がしたことは、仮想ホストを作成したことです。

  ServerName localhost
  DocumentRoot / Library / WebServer / Documents
  RailsEnv開発
  RailsBaseURI / railsBlog

ここで、URLはhttp:// localhost / railsBlogであるため、サーバーはrailsBlogを、私が渡しているコントローラーと見なしますが、これは私が望んでいることではありません。したがって、http:// localhost / railsBlog / home/indexにアクセスすると。これは、「 railsBlog」コントローラー(存在しない)と「home」ビュー(存在しない)に移動しようとするため、「home」コントローラーと「index」ビューに到達しません。

これを解決する1つの方法は、map.rootを/ railsBlogに再定義することであり、問​​題はないはずです。しかし、どのように?

これを回避する別の方法は、config/routes.rbを次のように変更することです。

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

ただし、これは、別の場所に展開するたびにこのファイルを変更する必要があることを意味します。

または、これを回避する他の方法はありますか?

4

2 に答える 2

4

このような行をconfig/environment.rb(または特定の環境ファイルの1つ)に入れることができます

config.action_controller.relative_url_root = "/railsBlog"

publcまた、ディレクトリをWebディレクトリのルートにシンボリックリンクする必要があります。次に例を示します。

ln -s /rails/railsBlog/public /webroot/

これはすべて乗客のドキュメントからです

于 2009-03-23T02:02:59.393 に答える
1

前の回答に追加するだけです...ドキュメントのURLは次のとおりです。

http://www.modrails.com/documentation/Users%20guide.html#deploying_rails_to_sub_uri

また、画像、CSS、リソース リンクが壊れているというエラーが発生した場合の情報を以下に示します...

http://www.modrails.com/documentation/Users%20guide.html#sub_uri_deployment_uri_fix

基本的には、URL を手作業でコーディングする代わりに、Rails ヘルパー関数 (image_tag、javascript_include_tag、および stylesheet_link_tag) を常に使用する必要があると書かれています。これらは、設定したサブ URI を使用して正しい URL を自動的に生成します。

これにより、すべての参照を変更することなく、アプリケーションを別のサブ URI に簡単に移動したり、サブ URI 構成から移動したりできます。

これの良い点の 1 つは、複数の RailsBaseURI 行を使用することで、1 つの仮想サーバー ステートメントを使用して複数のアプリケーションをデプロイできることです。これは、構築しようとしていたアプリに役立ちました。

于 2009-05-20T21:26:01.783 に答える