Ruby on Rails: очистить кэшированную страницу



У меня есть приложение RoR (ruby v1.8.7; rails v2.3.5), которое кэширует страницу в среде разработки. Это было бы не так много проблем, но кэшированная страница a элементы являются неправильными.



Я не внес никаких изменений в разработку.rb-файл, и я сознательно не добавил никаких команд кэширования к контроллерам.



Я попытался очистить куки браузера (Firefox 3.5 на OSX) и кэш страниц для этого сайта (localhost). Я также перезапустил Дворняжка. Кажется, ничего не помогает.



чего мне не хватает?

861   5  

5 ответов:

эта линия в разработке.РБ гарантирует, что кэширование не происходит.

config.action_controller.perform_caching             = false

вы можете очистить кэш Rails с помощью

Rails.cache.clear

что сказал - Я не уверен, что это проблема кэширования. Вы вносите изменения на страницу и не видите их отражения? Возможно, вы не смотрите на живую версию этой страницы? Я сделал это однажды (краснею).

обновление:

вы можете вызвать эту команду из консоли. Вы уверены, что запуск приложения в разработке?

единственная альтернатива заключается в том, что страница, которую вы пытаетесь отобразить, не является страницей, которая отображается.

Если вы смотрите вывод сервера вы должны быть в состоянии увидеть команду рендеринга, когда страница отображается аналогично этому:

Rendered shared_partials/_latest_featured_video (31.9ms)
Rendered shared_partials/_s_invite_friends (2.9ms)
Rendered layouts/_sidebar (2002.1ms)
Rendered layouts/_footer (2.8ms)
Rendered layouts/_busy_indicator (0.6ms)

rake tmp:cache:clear может быть то, что вы ищете.

я смог решить эту проблему, очистив мой кэш активов:

$ rake assets:clean

Проверьте статическую версию вашей страницы в / public и удалите ее, если она есть. Когда Рельсы 3.x кэширует страницы, он оставляет статическую версию в вашей общей папке и загружает ее, когда пользователи попадают на ваш сайт. Это останется даже после того, как вы очистите кэш.

Если вы делаете кэширование фрагментов, вы можете вручную разбить кэш, обновив ключ кэша, например:

Версия #1

<% cache ['cool_name_for_cache_key', 'v1'] do %>

Версия #2

<% cache ['cool_name_for_cache_key', 'v2'] do %>

или вы можете автоматически сбросить кэш на основе состояния нестатического объекта, такого как объект ActiveRecord, например:

<% cache @user_object do %>

С помощью этого ^ метода, каждый раз, когда объект пользователя обновляется, кэш будет автоматически сброшен.

Comments

    Ничего не найдено.