Laravel 5.2 中的“PhpDebugBar 未定义”错误

Posted

技术标签:

【中文标题】Laravel 5.2 中的“PhpDebugBar 未定义”错误【英文标题】:"PhpDebugBar is not defined" error in Laravel 5.2 【发布时间】:2017-01-19 12:45:15 【问题描述】:

当我尝试运行 Laravel 5.2 项目的登录页面时,发现了这个错误。

Uncaught ReferenceError: jQuery is not defined(匿名函数) @ (索引):137

Uncaught ReferenceError: phpDebugBar is not defined(anonymous 函数)@(索引):139

登录html代码为:

<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>test</title>
        <link rel="shortcut icon" type="image/png" href="!! url('/') !!/backend/images/favicon.ico"/>
</head>
<body>
    <div id="logo"><img src="backend/images/logo.png"></div>
    <div id="login_container">
        <div id="login_msg">
            @if(Session::get('success'))
            !! Session::get('success') !!
            @else
            <span style="font-size:14px;"><strong>Welcome...</strong></span><br>Please enter your login details below to authenticate.
                @endif 
        </div>
        <div id="login">
            <form  action="!! url('/') !!/api/auth/login" method="post" name="loginForm" id="frmlogin">
                !! csrf_field() !!

                <table  border="0" cellspacing="0" cellpadding="5">
                    <tbody><tr>
                            <td  align="right" valign="middle"><strong>Username</strong></td>
                            <td align="left" valign="middle"><input type="text" name="login" class="login_inputs"></td>
                        </tr>
                        <tr>
                            <td  align="right" valign="middle"><strong>Password</strong></td>
                            <td align="left" valign="middle"><input type="password" name="password" class="login_inputs"></td>
                        </tr>
                        <tr>
                            <td  align="right" valign="middle"><input type="checkbox" name="rememberme" id="rememberme"></td>
                            <td align="left" valign="middle"><label for="rememberme" style="cursor:hand">Remember me until I logout.</label></td>
                        </tr>
                        <tr>
                            <td  align="right" valign="middle">&nbsp;</td>
                            <td align="left" valign="middle">
                                <table  cellpadding="0" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td><input type="submit" value="Login" class="button"></td>
                                            <td align="right"></td></tr>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                    </tbody></table>
            </form>
        </div>
        @if(Session::get('message'))
        <div id="extra_info">
            <table  border="0" cellspacing="0" cellpadding="0">
                <tbody><tr>

                        <td align="left" valign="middle" style="color:#FF0000;"> 
                            <span class="error-message"> Session::get('message') </span>
                        </td>

                    </tr>
                </tbody></table>
        </div>
        @endif
    </div>
    <div align="center"><a href="!! url('/') !!/forgot_password">Forgot your password?</a> or <a href="!! url('/') !!/signup">Signup</a></div>

</body></html>

有人可以帮我解决这个错误吗?我哪里做错了?

【问题讨论】:

您是否扩展了布局视图(使用刀片的@extends)?我在这里看不到。 不@Filip Koblański 那么你没有加载这些资产。您正在从调试栏使用,但您没有任何 &lt;html&gt; 标记... 现在我已经更新了完整的登录页面代码。 @Filip Koblański 调用你的文件,即:login.blade.php 【参考方案1】:

如果您使用的是 Apache,请先检查此步骤。 Mod_Rewrite 允许您根据需要制作自定义和简化的 URL。

    <Directory ***>
    ...
    AllowOverride All
    ...
    </Directory>
    

    a2enmod rewrite

    service apache2 restart

【讨论】:

请在您的答案中添加一些解释,以便其他人从中学习。是什么让您认为这个问题与 Apache 有关?【参考方案2】:

我通过以下步骤解决了问题:

    作曲家更新 env 将 APP_DEBUG=true 更改为 APP_DEBUG=false 然后是 php artisan config:cache .env 将 APP_DEBUG=false 更改为 APP_DEBUG=true 然后是 php artisan config:cache

【讨论】:

【参考方案3】:

检查服务器上的错误日志。可能是服务器上的磁盘空间已满,然后您会收到此类错误。

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习。服务端的补盘一般不会导致客户端的JS错误【参考方案4】:

发现 AJAX 调用可能需要另一个(打开处理程序)。

据此,完整的 app/Http/routes.php 或 web.php 现在将是:

    Route::get('/_debugbar/assets/stylesheets', [
    'as' => 'debugbar-css',
    'uses' => '\Barryvdh\Debugbar\Controllers\AssetController@css'
]);

Route::get('/_debugbar/assets/javascript', [
    'as' => 'debugbar-js',
    'uses' => '\Barryvdh\Debugbar\Controllers\AssetController@js'
]);

Route::get('/_debugbar/open', [
    'as' => 'debugbar-open',
    'uses' => '\Barryvdh\Debugbar\Controllers\OpenController@handler'
]);

【讨论】:

以上是关于Laravel 5.2 中的“PhpDebugBar 未定义”错误的主要内容,如果未能解决你的问题,请参考以下文章

laravel 5.2 中的作曲家更新

Laravel 5.2 中的多张图片上传

如何将此集合转换为 Laravel 5.2 中的数组

Laravel 5.2 邮件发送中的 Swift_TransportException

未找到 xampp 对象中的 Laravel 5.2

laravel 5.2 中的表单模型绑定