我的Laravel4应用程序的日志有时会显示一个NotFoundHttpException
exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /var/www/laravel4/bootstrap/compiled.php:7420
Stack trace:
#0 /var/www/laravel4/bootstrap/compiled.php(7137): Illuminate\Routing\Router->handleRoutingException(Object(Symfony\Component\Routing\Exception\ResourceNotFoundException))
#1 /var/www/laravel4/bootstrap/compiled.php(7113): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 /var/www/laravel4/bootstrap/compiled.php(958): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#3 /var/www/laravel4/bootstrap/compiled.php(946): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#4 /var/www/laravel4/public/index.php(49): Illuminate\Foundation\Application->run()
#5 {main}是什么导致了这种情况呢?堆栈跟踪没有显示我的代码中的任何内容。
发布于 2014-01-10 20:30:35
NotFoundHttpException基本上就是应用程序中的404。不幸的是,异常消息甚至没有告诉您触发异常的请求的URL,这使得当您在日志中看到这些错误时很难理解它们。
要为您提供更多调试信息,请设置您自己的404处理程序。下面是一个简单的处理程序,它将记录URL (这样您就知道是什么请求触发了错误)和用户代理(帮助您找出是谁或什么发出了请求),并返回一个视图和404代码:
App::missing(function($e) {
$url = Request::fullUrl();
$userAgent = Request::header('user-agent');
Log::warning("404 for URL: $url requested by user agent: $userAgent");
return Response::view('errors.not-found', array(), 404);
});将其放入app/start/global.php。
发布于 2014-05-29 18:13:04
我遇到这个问题是因为我将父目录的名称大写,而没有在URL中大写。这就是我得到这个错误的原因。
我正在使用这个url localhost/laravel/todo2/public/foo,实际上,如果我只输入:localhost/Laravel/todo2/public/,它就可以工作,但是如果我在public/之后输入任何内容,它就会给出那个错误。
如果我将这个与Laravel大写的localhost/Laravel/todo2/public/foo一起使用
public/之后的路由将会起作用
发布于 2013-05-15 06:34:58
在不了解代码的情况下,很难确定是什么导致了这种情况。查看错误的堆栈跟踪,可以清楚地看到路由器正在调度它,我猜这与后台作业本身无关,而是与它调用的API有关。
在您的特定情况下,异常是在ResourceNotFoundException之后抛出的,当没有为这种URL模式定义路由时就会发生这种情况。
可能出现的问题:
如果后台作业在您自己的应用程序接口上执行file_get_contents或curl,它可能会调用一个不存在的路由,然后抛出该异常。
如果你无法控制后台作业正在下载的网址,它可能会尝试获取127.0.0.1、localhost或其他类似的网址。
https://stackoverflow.com/questions/15843265
复制相似问题