1

静的部分と動的部分を持つRoRでアプリを開発しています。静的部分は、アプリのpublic/フォルダーに配置されます。これで、パブリックフォルダーにindex.htmlがある場合、routes.rbで構成されたルートを使用できなくなります。インデックスがある場合、map.connect /:controller /:actionなどのデフォルト構成は使用できません。 .html。だから私はインデックスhtmlを削除しました。

これで、public/フォルダーに静的ページstartpage.htmlがあります。これはアプリの開始ページである必要があります。そして、私は他の静的/動的ページへのリンクを持っています。

RoRアプリはapacheでホストされており、DirectoryIndexパラメーターを追加して仮想ホスト構成を構成しようとしました。これにより、サイトにリクエストが来るたびにstartpage.htmlに転送されますが、それでもデフォルトのコントローラーに移動します。私はroutes.rbでmap.rootを指定しまし

ダミーのコントローラーとアクションを追加して、スタートページを持つビューを作成し、ルートとして使用するようにroutes.rbを構成したくありません。私がここでやろうとしているのは

基本的に、startpage.htmlは、public/フォルダーから静的ページとして機能するアプリの最初のページである必要があります。これにより、他のページやコントローラー/アクションへのリンクが作成されます

ここでは、制御をRailsアプリケーションに渡す代わりに、htmlページにリダイレクトするようにapacheすることができません。オプションインデックスを使用してディレクトリリストを有効にすることもできますが、変更はありません。

誰かポインタはありますか?

4

2 に答える 2

6

これで、パブリックフォルダーにindex.htmlがある場合、routes.rbで構成されたルートを使用できなくなります。

これは正しくありません。問題の解決策は、名前startpage.htmlをに変更することindex.htmlです。これにより、リクエストは/によって処理されindex.html、リクエストはすべて/:controller/:actionRailsルーティングエンジンに渡されます。

publicApacheは、最初にディレクトリ内で見つけたものをすべて提供します。利用できない場合は、リクエストをRailsに渡します(これがページキャッシュの仕組みです)。

所定の位置にあると、要求されることはないため、index.htmlは必要ありませんmap.root(Apacheはで機能/することを忘れないでくださいindex.html)。また、特別なディレクティブも必要ありません。

于 2010-03-31T10:47:16.370 に答える
0

URL を index.html から startpage.html に書き換えることができます。

RewriteRule /index.html /startpage.html
于 2010-03-31T10:21:11.793 に答える