Passenger et caches_page

Pour une fois je ne vais pas venir avec un problème, bon ok ça a failli.

j’ai donc une appli rails qui tourne sur apache2 et passenger, dans
l’absolu
ça marche très bien.

Bien que je trouve que la page ‘index’ soit longue à être charger, comme
si
le navigateur attendait que toute la page soit généré pour l’afficher

complètement.

Donc après moult discussion, j’ai mis un système de cache => caches_page

avec une directive dans mon environnement.rb

config.action_controller.page_cache_directory =
“#{RAILS_ROOT}/public/cache”

Mais je me suis rendu compte via les log qu’Ã chaque demande de page,
celle
ci était généré et caché,

mais à la même demande, c’était de nouveau re-généré, donc la page caché
ne
servait à rien

en farfouillant le web, j’ai pu trouver qu’il s’agissait d’un ‘bug’ de
passenger en effet celui-ci

ne “gère” pas la directive ci dessus. Et que de part ce fait, il allait
chercher la page caché dans ‘public’

et non dans ‘public/cache’

La solution exposé est de soit :

  • ne pas utiliser la directive

  • utiliser .htaccess pour faire du rewrite avec comme directive

RewriteRule ^$ /cache/index.html [QSA]
RewriteRule ^([^.]+)$ /cache/$1.html [QSA]

Voilà pour la petite histoire, si ça peut être utile au moins à une
personne, j’aurais pas cherché pour rien. personnellement j’ai enlevé la
directive.

A terme je vais mettre un sweeper, car là c’est un peu compliqué à gérer
les
expire_cache.

Librement,


— DEMONCHY David - Fusco
— Email : [email protected]
http://blog.fusco.dtdm.org