1

自分が運営している Rails サイトでページ キャッシングを使用したいと考えています。各ページの情報はほとんど一定ですが、情報を収集するために実行する必要があるクエリは複雑で、場合によっては遅くなる可能性があります。ページ キャッシュを使用する唯一の障害は、管理インターフェイスがメイン サイトに組み込まれていることです。関心のあるページを離れずに管理操作を実行できること。

Apache+mod_rails (Passenger) を使用しています。現在のユーザーがセッション変数または 'admin'* という名前の Cookie を持っている場合、.html ファイルを無視する必要があることを Apache に示す方法はありますか? セッション変数は、有効性について Apache によって評価される必要はありません (この場合は Rails によって評価されるため)。

4

1 に答える 1

1

現在のユーザーがセッション変数または 'admin'* という名前の Cookie を持っている場合、.html ファイルを無視する必要があることを Apache に示す方法はありますか?

本当にありえないと思います。たとえそうだとしても、非常にトリッキーなはずです。

代わりにAction Cachingを使用できます。ドキュメントからの引用:

ページ キャッシュの問題の 1 つは、ユーザーにアクセスを許可するかどうかを決定するためにコードをチェックする必要があるページには使用できないことです。

これはまさにあなたのケースのように聞こえます。


それでも Web サーバー経由のページ キャッシングが本当に必要な場合は、管理者用と非管理者用に別々のページを実装する方がよいと思います。これには、1 つの理由があります。ページキャッシングを有効にすると、レールはリクエストをまったく処理しないため、ユーザーが認証されているかどうかを知る方法がありません。


動的ページ キャッシングを使用すると、おそらくこれを克服できます。アイデアは基本的に、JavaScript から「admin」部分を追加することです。私は個人的にこれがあまり好きではありません。


もう 1 つ更新: クイック検索でこの記事にたどり着きました。 アイデアは、ページを条件付きでキャッシュし、プラグインして管理ページを提供することです。
mod_rewrite

あなたのために働くでしょうが、かなり汚い解決策です。

于 2010-03-09T22:37:28.377 に答える