2013-08-15 16 views
5

Wszystkie zarejestrowane trasy działają. Wyświetlają widok, ale na każde żądanie pojawia się NotFoundHttpException w moim pliku dziennika.Dlaczego Laravel nadal rejestruje wyjątek NotFoundHttpException, gdy działają wszystkie trasy?

Używam NGINX. Czy to może być moja konfiguracja NGINX?

Błąd, który jest zalogowany na każde żądanie (choć widok pokazuje w górę):

log.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /usr/share/nginx/www/example-staging/releases/20130815024541/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1429 
Stack trace: 
#0 /usr/share/nginx/www/example-staging/releases/20130815024541/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1050): Illuminate\Routing\Router->handleRoutingException(Object(Symfony\Component\Routing\Exception\ResourceNotFoundException)) 
#1 /usr/share/nginx/www/example-staging/releases/20130815024541/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1014): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request)) 
#2 /usr/share/nginx/www/example-staging/releases/20130815024541/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(530): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) 
#3 /usr/share/nginx/www/example-staging/releases/20130815024541/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(506): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request)) 
#4 /usr/share/nginx/www/example-staging/releases/20130815024541/content/index.php(49): Illuminate\Foundation\Application->run() 
#5 {main} 

nginx Config:

# Redirect www. 
server { 
    listen 80; 
    server_name www.example.com; 
    rewrite ^(.*) http://example.com$1 permanent; 
} 

server { 
    listen 80; 
    server_name example.com; 

    access_log /var/log/nginx/example.com/access.log; 
    error_log /var/log/nginx/example.com/error.log; 
    rewrite_log on; 

    root /usr/share/nginx/www/example/current/content; 
    index index.php; 

    location/{ 
     try_files $uri $uri/ /index.php?$query_string; 
    } 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    location ~* \.php$ { 
     # Server PHP config. 
     fastcgi_pass     unix:/var/run/php5-fpm.sock; 
     fastcgi_index     index.php; 
     fastcgi_split_path_info   ^(.+\.php)(.*)$; 

     # Typical vars in here, nothing interesting. 
     include       /etc/nginx/fastcgi_params; 
     fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    } 

    if (!-d $request_filename) { 
     rewrite ^/(.+)/$ /$1 permanent; 
    } 

    location ~ /\.ht { 
     # (deny .htaccess) 
     deny all; 
    } 
} 
+3

To może być '/ favicon.ico'? Niektóre przeglądarki internetowe żądają tego, nawet jeśli nie są określone. Jaka jest żądana trasa, jak pokazano w pliku access.log? –

+0

Wow ... miałeś rację. To był favicon. Dzięki. – Justin

Odpowiedz

10

To nie miało nic wspólnego z nginx config.

Ścieżka do favicon była niepoprawna. Założono, że wszystkie zasoby zostały znalezione, ponieważ w inspektorze sieci wszystko było w porządku lub 304. Domyślam się, że inspektor nie pokazuje favicon w zakładce sieci.

Jak wspomniano Rubens Mariuzzo The access.log wykazała, że ​​stan był favicon 500.

Na marginesie, jeśli chcesz laravel zatrzymać błędy 404 Rejestrowanie/zasób nie znalezione błędy w plikach dzienników, ty można edytować plik global.php podobny do poniższego.

App::error(function(Exception $exception, $code) 
{ 
    // Don't log 404s 
    if ($exception instanceof Symfony\Component\HttpKernel\Exception\NotFoundHttpException) { 
     return; 
    } 

    Log::error($exception); 
}); 
+1

Wewnątrz konfiguracji nginx, w bloku 'server', rozważ dodanie:' location = /favicon.ico {log_not_found off; access_log off; } 'i/lub' location = /robots.txt {access_log off; log_not_found off; } ' – fideloper

Powiązane problemy