Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Программирование на ROR/Не удается кэшировать страницы

2008-09-08 07:59:20 Ответить  
SellingFeis
SellingFeis
Адрес:
Сообщений: 3
Регистр: 2008-08-22
его блог 0 сообщ.
Не удается кэшировать страницы
  •  
Поручили мне поддерживать один проект на руби. Начал изучать руби.
На локальном компьютере под виндой стоит InstantRails-2.0 на нем и тестирую.
Первая задача которая возникла, надо кешировать страницы. Страницы собираются динамически.
Адрес имеют такой вид localhost/1/pages/show/145

где
1 - идентификатор раздела на сайте (в базе данных описан)
pages - это контроллер
show - метод
145 - идентификатор страницы (в базе данных описан)

что сделал:
в app/controllers/pages_controller.rb добавил строчку caches_page :pages, :show
было так:

стало так


В папке public создана еще одна папка public

Как я понял при кешировании в корне сайта или в папке public должна была бы создаться директории /1/pages/show/ и в ней файл 145.html

Но почемуто не создаются эти директории и файл, причем ошибки при исполении не возникают. Монгрел перезапускал...

Видимо я не так понимаю кеширование?
Подскажите как кешировать динамические страницы полностью, дело в том что сервер иногда невозможно долго отдает страницы, от 1 до 2 минут.
Естественно ни один посетитель не может так долго ждать

инструкцию по кэшированию пытался выполнять по описаной здесь ibm.com/developerworks/ru/library/wa-rails1/index.html
, ,
2008-09-08 10:35:17 Ответить  
SellingFeis
SellingFeis
Адрес:
Сообщений: 3
Регистр: 2008-08-22
его блог 0 сообщ.
RE: Не удается кэшировать страницы
  •  
Вот нашел более хороший туториал, но пока все равно не работает
http://www.railsenvy.com/2007/2/28/rails-caching-tutorial
2008-09-08 11:22:52 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1293
Регистр: 2007-03-13
его блог 40 сообщ.
RE: Не удается кэшировать страницы
  •  
В конфиге надо указать какой тип кеширования ты будешь использовать

кеширование работает только в продакшине в девелопменте нет если насильно не включить

еслиты хочь кешировать в файловой системе
config/environment.rb:
ActionController::Base.fragment_cache_store = :file_store, "/path/to/cache/directory"
------------
Занимаюсь вебом и продвижением сайтов.
2008-09-08 11:24:32 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1293
Регистр: 2007-03-13
его блог 40 сообщ.
RE: RE: Не удается кэшировать страницы
  •  
еще раз спасибо за заполненный профайл
------------
Занимаюсь вебом и продвижением сайтов.
2008-09-08 11:30:17 Ответить  
SellingFeis
SellingFeis
Адрес:
Сообщений: 3
Регистр: 2008-08-22
его блог 0 сообщ.
RE: Не удается кэшировать страницы
  •  
Вообщем все заработало!
есть адрес типа http://localhost/1/pages/show/351

В /config/environments/development.rb надо поставить труе


В контроле page_controless надо написать caches_page :show



Ну и рестартовать монгрел наверное надо для верности.

тогда при посещении страниц первый раз, в корне сайта создастся директории /1/pages/show/ и в них будут записываться файлы 351.html

при повторном посещении адреса http://localhost/1/pages/show/351 страница будет формироваться не руби а будет браться из этих сгенеренных директорий.

Надеюсь теперь у меня сайт зашуршит побыстрей...

Руслан, спасибо за
ActionController::Base.fragment_cache_store = :file_store, "/path/to/cache/directory"
тоже пригодится
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 130 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008