私は基本的に同じページをレンダリングする2つのURLを持っています。軽微な違いは、location.href
に基づいて、javascriptで簡単に実行できます。とにかく、ルートが同じcontroller#action
を指している場合でも、2番目のルートは前者のキャッシュされたページを使用していません。どうすればこれを達成できますか?レールの異なるURLに同じキャッシュページを使用するにはどうすればよいですか?
1
A
答えて
0
私はあなたの反対の私のウェブサイトで興味深い要件を持っています - 異なるテーマのために同じURLから別のページを返すことができます。だから、私は "匿名キャッシュ"と呼ばれるソリューションを考え出し、余分なパラメータを含む私自身のキャッシュキーを作成します。しかし、私はこの解決策があなたにいくつかの手がかりを与えることができると思う。私は、ページキャッシュのための標準的なキーを作るところ
module AnonymousCache
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def caches_page_for_anonymous(*pages)
before_filter :check_cache_for_anonymous, :only => pages
after_filter :cache_for_anonymous, :only => pages
end
end
def check_cache_for_anonymous
return unless perform_caching
return if logged_in?
path = anon_cache_path
if content = Rails.cache.read(path)
send_data(content,
:type => 'text/html;charset=utf-8', :disposition => 'inline')
return false
end
end
def cache_for_anonymous
return unless perform_caching
return if logged_in?
path = anon_cache_path
@expires_in ||= 1.hour
self.class.benchmark "Cached page for guest: #{path}" do
Rails.cache.write(path, response.body, :expires_in => @expires_in.to_i)
end
end
protected :check_cache_for_anonymous
protected :cache_for_anonymous
private
def anon_cache_path()
path1 = File.join(request.host, current_theme, request.path)
q = request.query_string
path1 = "#{path1}?#{q}" unless q.empty?
path1
end
end
anon_cache_path
方法があります。私にはcurrent_theme
が含まれているのが分かります。
これをコピーして、お客様の要件に応じてanon_cache_path
を変更することができます。
関連する問題
- 1. 同じサーバーに2つの異なるURLを設定するにはどうすればよいですか?
- 2. JavaScriptの異なるIDに同じ関数を使用するにはどうすればよいですか?
- 3. 同じページのセクションに異なるルートを使用するにはどうすればよいですか?
- 4. 同じアプリケーションで異なるバージョンのクラスを使用するにはどうすればよいですか?
- 5. 異なるクラスのArrayListで同じメソッドを使用するにはどうすればよいですか?
- 6. 同じViewModelに異なるDisplayTemplatesを使用するにはどうすればよいですか?
- 7. pixi.jsの同じテキストに異なるグラデーションを適用するにはどうすればよいですか?
- 8. 複数の異なるアイテムに同じデータトリガを適用するにはどうすればよいですか?
- 9. pandasデータフレームに同じような値をgroupbyで使用するにはどうすればよいですか?
- 10. 異なるオペレーティングシステムでwinform GUIの外観を同じにするにはどうすればよいですか?
- 11. CSS:同じ要素に異なるアニメーションを適用するにはどうすればいいですか?
- 12. 同じページで同じJavaScript変数を使用するにはどうすればよいですか?
- 13. GOで異なるミドルウェアを異なるパスに使用するにはどうすればよいですか?
- 14. ボタンを使用して同じウェブページの異なるセクションに移動するようにナビゲーションバーをコーディングするにはどうすればよいですか?
- 15. 同じオペレーティングシステムで異なるバージョンのnode.jsを管理するにはどうすればよいですか?
- 16. 同じクラスの異なるインスタンスで変数を比較するにはどうすればよいですか?
- 17. excel vbaで同じフォルダの異なるバージョンをコピーするにはどうすればよいですか?
- 18. BLToolkitの同じアクセサで異なるコマンドタイムアウトを指定するにはどうすればよいですか?
- 19. 同じCLASS名に異なるIDを追加するにはどうすればよいですか?
- 20. 同じドキュメントに異なるパスを処理するにはどうすればよいですか?
- 21. 同じテーブルの異なる列の外部キーをカウントするにはどうすればよいですか?
- 22. 同じタイプの異なる値の合計を選択するにはどうすればよいですか?
- 23. JSONデータを同じキーと異なるデータで解析するにはどうすればよいですか?
- 24. 異なるテキストビューで同じ単語を検索するにはどうすればよいですか?
- 25. 同じフォームクラスの異なるインスタンスは、どのように異なるウィンドウクラススタイルを使用できますか?
- 26. 異なるPCで同じjavaワークスペースで作業するにはどうすればよいですか?
- 27. MuiThemeProvider:異なるルートで異なるテーマを使用するにはどうすればよいですか?
- 28. かなりのURLを使用するURLを取得するにはどうすればよいですか?
- 29. 異なる文字列を同じメソッドに渡すにはどうすればよいですか?
- 30. 同じまたは異なるフォルダにhtmlページをリンクするにはどうすればいいですか?