Nieoczekiwany request ApplicationController#index

Witam!

Przeglądając ostatnio log aplikacji znalazłem taki błąd:

[code]Completed in 7831ms (View: 1583, DB: 4886) | 200 OK [http://localhost/infos/1]
e[4;35;1mSQL (55.3ms)e[0m e[0mSET client_min_messages TO 'panic’e[0m
e[4;35;1mSQL (55.3ms)e[0m e[0mSET client_min_messages TO 'panic’e[0m
e[4;36;1mSQL (56.1ms)e[0m e[0;1mSET standard_conforming_strings = one[0m

Processing ApplicationController#index (for 127.0.0.1 at 2010-09-06 05:05:52) [GET]

ActionController::RoutingError (No route matches “/infos/javascripts/dftree/dftree.css” with {:method=>:get}):
/usr/lib/ruby/1.8/mongrel.rb:159:in process_client' /usr/lib/ruby/1.8/mongrel.rb:158:ineach’
/usr/lib/ruby/1.8/mongrel.rb:158:in process_client' /usr/lib/ruby/1.8/mongrel.rb:285:inrun’
/usr/lib/ruby/1.8/mongrel.rb:285:in initialize' /usr/lib/ruby/1.8/mongrel.rb:285:innew’
/usr/lib/ruby/1.8/mongrel.rb:285:in run' /usr/lib/ruby/1.8/mongrel.rb:268:ininitialize’
/usr/lib/ruby/1.8/mongrel.rb:268:in new' /usr/lib/ruby/1.8/mongrel.rb:268:inrun’

Rendering rescues/layout (not_found)[/code]
Jak widać, zaraz po zakończeniu requesta użytkownika(który wykonuje się poprawnie, strona wyświetla się poprawnie i serwis działa poprawnie) serwer próbuje uzyskać get’em akcję index, i oczywiście nie zgadzają się ścieżki, ale to jest marginalny problem. Pytanie podstawowe: skąd się bierze ten request i dlaczego serwer próbuje go obsłużyć? Gdzie szukać błędu, skoro jedyny stack trace, to ten podany wyżej?

Będę wdzięczny za wszelkie sugestie.

a w layoucie przypadkiem nie masz gdzieś podlinkowanego pliku css (dftree.css) który został usunięty w międzyczasie?

Polecam obejrzenie jak to wygląda od strony klienta z pomocą Firebuga albo Google Chrome/Safari Web Development Tools, tam pokazuje wszystkie requesty które przeglądarka robi i odpowiedzi.

Wygląda na to, że plugin dftree próbuje załadować plik dftree.css, którego nie masz w odpowiednim katalogu. Mogą być dwie przyczyny tego problemu:

  1. Nie chcesz wcale użyć tego pliku, ale gdzieś go ładujesz. Przyjrzyj się plikom w app/views/layouts/. Jeśli korzystasz z jakiegoś pluginu do dftree, z helperem, może ten helper ładuje zarówno pliki js, jak i css.
  2. Nie masz tego pliku w systemie kontroli wersji - pewnie ktoś z teamu go nie dodał.

Ten request bierze się własnie z tego powodu. Mongrel dostaje prośbę o plik dftree.css, nie znajduje go w lokalizacji: “public/infos/javascripts/dftree/dftree.css”, więc wysyła żądanie do aplikacji, która nie znajduje ścieżki i generuje błąd.

Panowie!

Dziękuję za odpowiedzi, o 5 rano po prostu nie myślałem, a wystarczyło spojrzeć do Firebug’a i na zmiany w svn. Kolega zmienił ścieżki do css’a w layout dla admina. Teraz wszystko jasne.

Serdecznie dzięki za naprowadzenie gdzie mogę szukać błędów.
Pozdrawiam

A ja mam kupę takich requestów każdego dnia i zawsze je ignoruję…

Do tej pory zawsze uważałem, że to wirusy zainstalowane u nieświadomych internautów próbują wyszukiwać aplikacji internetowych z dziurami.

Mimo, że strona klienta dla którego pracuję nie miała nigdy nic wspólnego z php, często w logach widzę request’y o dziwne pliki php i inne rzeczy z kosmosu…

IMHO warto sprawdzić, ale jeżeli uważasz, że ścieżka do pliku jest z kosmosu to nie warto się przejmować…