Laravel 5 blade 出现错误时显示空白页面而不是抛出异常

Laravel 5 blade shows a blank page when there is error instead of throwing exception

In laravel 4 当您尝试呈现 app\views 中不存在的视图或具有未定义变量的视图时 laravel 将抛出异常或显示有助于调试的错误。

我全新安装了 laravel 5.0.13,我很难对 blade 模板进行故障排除,该模板在我呈现不存在的视图或未定义的模板时显示空白页变量而不是抛出异常或错误,这将在调试时提示我。

我已经安装了 filp/whoops:~1.0。但仍然收到空白页

class ProfileController extends Controller
{

    public function index()
    {
        return view('indexx'); //this view does not really exist
    }
}

文件 indexx 在我的 resources/views 中不存在,我希望 Laravel 抛出异常但我得到的是空白页,为什么?

此外,当我渲染一个存在一些未定义变量的视图时,我只是得到一个空白页面

示例:

class ProfileController 扩展控制器 {

    public function index()
    {
        return view('index'); //this view exists
    }

}

resources/views/index

的内容
{!! $this_variable_was_not_passed_an_I_expect_error !!}

正如您在上面的视图文件中看到的,变量不存在 laravel 将只显示一个空白页面,而不是抛出异常或一些调试错误。

另请注意,我在 config/views

中更改了我的 laravel 默认视图
'paths' => [ 
//realpath(base_path('resources/views')) 
realpath(base_path('resources/themes/default')) 
],

只要模板中没有错误,laravel 就能够从 resources/themes/default 渲染视图,但是,如果遇到任何错误,则会显示 laravel 这样的未定义变量一个空白页面而不是显示错误消息

还要提到我在 window 7

上安装了 virtual box 和 vagrant

这可能是错误还是什么?请帮忙。

我真的不知道为什么会这样,但在我 运行

之后它现在可以正常工作了

vagrant destroy销毁宅基地VM

然后 vagrant up - 创建 VM

现在显示的是错误消息,而不是空白页:

我遇到了同样的问题,但原因和解决方案如下: storage/logs 中的日志文件需要由网络服务器用户 owned/writable。否则 L5 给你一个空白页。

我 运行 "php artisan ..." 总是作为 root。如果抛出异常并且 Laravel 创建一个新的日志文件,那么它归 root 所有。在我的 Debian i 运行 项目根文件夹中: chown www-data.root * -R 来解决这个问题。

尝试更改存储文件夹的权限:

chmod -R 0777 storage

对我有用。

另一个对我有帮助的解决方案是 运行

composer install 

我使用 git 部署,它会自动忽略一些文件。 运行 composer install 为我修复了它。

//拉拉维尔 4 * 将此添加到 app/start/gobal.php

App::error(function(Exception $e, $code) {
            $runner = new \Whoops\Run;
            $inspect = new \Whoops\Exception\Inspector($e);
            $handler = new \Whoops\Handler\PrettyPageHandler;
            $handler->setRun($run);
            $handler->setInspector($insp);
            $handler->setException($e);
            return $handler->handle($e);
});

//拉拉维尔 5 * 将此添加到 app/Exceptions/Handler.php

 public function render($request, Exception $exception)
 {
    ..........
            $runner = new \Whoops\Run;
            $inspect = new \Whoops\Exception\Inspector($e);
            $handler = new \Whoops\Handler\PrettyPageHandler;
            $handler->setRun($run);
            $handler->setInspector($insp);
            $handler->setException($e);
            $handler->handle($e);
     ......
    return parent::render($request, $e);
}