Consertando meu Mephisto!
Posted on February 24, 2008
Como vocês devem ter visto neste post que publiquei algum tempo atrás, meu blog está rodando sobre o novíssimo Mephisto 0.8 e Rails 2.0.2, com ambos os trunks (do Mephisto e o meu) sincronizados com facilidade graças ao poder do GIT :-)
Porém, um problema vem me atormentando desde que migrei do Typo para Mephisto há vários meses atrás: o sistema de caching do Mephisto não estava funcionando para mim. Na época eu não fui atrás do erro e simplesmente desliguei o cache. Mas desde o fim do ano passado os acessos do meu site aumentar exponencialmente e agora a falta de cache começou a me dar rasteiras – com meu blog saindo do ar mais vezes do que deveria.
Quando mudei para um plano de VPS foi quando me lembrei que o cache estava desligado esse tempo todo! Depois que sincronizei meu blog com o trunk do Mephisto comecei a fazer um pente fino (git diff) entre os dois branches e depois de muito procurar finalmente achei a droga do erro! Ei-lo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
ActionController::Routing::Routes.draw do |map| Mephisto::Routing.connect_with map do # Fix for some of Typo old paths map.typo_atom_new 'articles.atom', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss_new 'articles.rss', :controller => 'feed', :sections => "", :action => 'feed' map.typo_atom_comments 'comments.atom', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_atom10_comments 'xml/atom10/comments/feed.xml', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_rss_comments 'comments.rss', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_atom_feed 'xml/atom/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_atom10_feed 'xml/atom10/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss_feed 'xml/rss/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss2_feed 'xml/rss20/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' # esta última linha é o erro! map.dispatch 'articles/*path', :controller => 'mephisto', :action => 'dispatch' end end |
Explicando: numa instalação padrão de Mephisto esse tanto de código não existe. Ele termina apenas na chamada ao método connect_with_map. Alguns já devem ter notado para quê isto serve: remapear as antigas URLs de Typo para Mephisto.
Você vão se lembrar que a engine antiga de blog que eu usava era Typo. Quando migrei para Mephisto eu não queria que quem tivesse linkado para meu site de repente passasse a ver erros 404. O engraçado é que eu acho que logo no começo isso funcionava. Não sei o que começou a causar o erro.
O que eu descobri é que tirando o último map.dispatch faz os testes integrados todos passarem! E não adiantou mudar a linha de lugar: colocando antes, depois ou dentro do bloco do connect_with_map parece causar o mesmo erro. E tanto map.connect quanto map.dispatch dá problema com esse pattern de URL.
Ainda não investiguei mais a fundo para entender porque uma linha que tecnicamente não deveria dar problema acaba desligando todo sistema de cache do Mephisto. De qualquer forma, acabei de refazer o deployment sem esse mapeamento e parece que tudo voltou ao normal, com o cache habilitado e sendo corretamente expirado. Vamos ver se continua assim.
blog comments powered by Disqus
Archives
- February 12(2)
- December 11(1)
- November 11(4)
- October 11(6)
- September 11(5)
- August 11(1)
- July 11(5)
- May 11(4)
- April 11(11)
- March 11(4)
- February 11(3)
- January 11(4)
- December 10(9)
- November 10(2)
- October 10(10)
- September 10(4)
- August 10(6)
- July 10(14)
- June 10(16)
- May 10(8)
- April 10(14)
- March 10(9)
- February 10(6)
- January 10(14)
- December 09(10)
- November 09(10)
- October 09(7)
- September 09(19)
- August 09(4)
- July 09(12)
- June 09(7)
- May 09(12)
- April 09(11)
- March 09(9)
- February 09(9)
- January 09(12)
- December 08(14)
- November 08(20)
- October 08(15)
- September 08(18)
- August 08(25)
- July 08(13)
- June 08(21)
- May 08(29)
- April 08(27)
- March 08(12)
- February 08(32)
- January 08(31)
- December 07(27)
- November 07(30)
- October 07(25)
- September 07(28)
- August 07(16)
- July 07(15)
- June 07(16)
- May 07(7)
- April 07(13)
- March 07(8)
- February 07(9)
- January 07(24)
- December 06(17)
- November 06(17)
- October 06(15)
- September 06(38)




