Codeigniter 4 中的调试工具栏不起作用

Debug Toolbar in Codeigniter 4 not working

我安装了 Codeigniter 4.0.2 并进行了以下更改:

1- CI_ENVIRONMENT = development 在 .env 文件中

2- SetEnv CI_ENVIRONMENT development public 文件夹中的 .htaccess

3- 在 public 文件夹 index.php 的主要 index.php 文件中添加了 $useKint = true;

当我在本地主机上打开时,呈现欢迎页面但不呈现调试工具栏。我错过了什么吗?

调试工具栏将位于右下角,带有codigniter 代码徽标

  1. 单击以打开调试栏。

点击图标即可看到这样的调试栏。

这里有一些您可以在全新安装的 CI4 中检查的内容:

  • 您的环境确实在开发中(您可以在欢迎页面的页脚中查看)。如果没有,请务必在 .env 中设置 CI_ENVIRONMENT = development。请注意,因为新的 CI4 没有附带 .env 文件,而是带有 env 文件。一定要重命名。

  • 确保你的 app/Config/Boot/development 中有 defined('CI_DEBUG') || define('CI_DEBUG', 1);。php 文件

  • 尝试使用命令行启动您的应用程序 php spark serve 这样您就可以获取有关您的应用程序访问工具栏的一些信息。

  • 确保在 app/Config/Filters.php 中有一个名为 $globals 的变量,'toolbar' 作为 'after' 的值键和 'toolbar' 与工具栏 class 正确映射到 $aliases

    
        public $aliases = [
                'csrf'     => \CodeIgniter\Filters\CSRF::class,
                'toolbar'  => \CodeIgniter\Filters\DebugToolbar::class,
                'honeypot' => \CodeIgniter\Filters\Honeypot::class
            ];
    
    
    
        public $globals = [
                'before' => [
                    //'honeypot'
                    // 'csrf',
                ],
                'after'  => [
                    'toolbar',
                    //'honeypot'
                ],
            ];
    
    

可以作为一些起点,希望对您有所帮助。

今天,我在第一次尝试使用 CI4(使用 XAMPP)时遇到了同样的问题... 我对 CI4 框架所做的唯一更改是将 env 文件重命名为 .env 然后我在 .env 文件中设置 CI_ENVIRONMENT = development

我找到了 2 个解决方案:

  • 使用"php spark serve"命令启动我的项目而不是XAMPP

  • 将 app\Config\App.php 中的 $baseURL 指向我项目的 public 文件夹

希望对您有所帮助! 最好的问候

如果您不使用 PHP 的内置服务器

,请正确设置基础 url

app/config/App.php

public $baseURL = 'http://localhost/path_to_CI/public';

这为我修复了它:

  1. 将 env 文件重命名为 .env 并打开它
  2. 取消注释行 # CI_ENVIRONMENT = production 并将值更改为 development
  3. app.baseURL 值更改为您应用程序的基础值 URL(这似乎是您错过的步骤)

您需要 "php spark serve" 如文档所述,因为 debugbar 在 spark set on 中查找 localhost:8080。

确保使用 HTTP 协议而不是 HTTPS

.env 文件上检查 app.baseURL = 'http://localhost/'
不是 app.baseURL = 'https://localhost'.

然后,在浏览器上使用 http:// 而不是 https:// 访问它。

我也遇到这个问题3天了。 今天我通过 make /writable/debugbar/ to 777 (just for development)

解决了这个问题

chmod -R 777 [yourappname]/writable/debugbar/

希望这能为您和大家提供解决方案

就我而言,问题出在 app.baseURL 我确实放了 我的项目是 compbase

-- app.baseURL = 'http://compbase'

我把它改成了

-- app.baseURL = 'http://compbase.test'

当您使用 laragon 时

在你的 env 文件中必须修改 baseurl 与 public 文件夹
app.baseURL = 'http://localhost/your-app/public'

只需将以下几行添加到 app/config/filters.php 中,它的效果就很好

public $collectors = [
    \CodeIgniter\Debug\Toolbar\Collectors\Timers::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Database::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Logs::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Views::class,
     \CodeIgniter\Debug\Toolbar\Collectors\Cache::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Files::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Routes::class,
    \CodeIgniter\Debug\Toolbar\Collectors\Events::class,
];

无需按照 Document

执行任何其他操作

App\Config\Filtes.php 检查您的代码。

使用这行代码:

public $aliases = [
        'csrf'     => CSRF::class,
        'toolbar'  => DebugToolbar::class,
        'honeypot' => Honeypot::class,
    ];

而不是这个:

public $aliases = [
      'csrf'     => CodeIgniter\Filters\CSRF::class,
      'toolbar'  => CodeIgniter\Filters\DebugToolbar::class,
      'honeypot' => CodeIgniter\Filters\Honeypot::class,
    ];

我在安装 ci 4.1.5 时遇到了同样的问题,并通过这种方式解决了:

使用户 .env 文件存在于项目根文件夹中。

重命名 env to .env 或在项目根文件夹中创建 .env

.env文件中设置开发环境

CI_ENVIRONMENT=development

.env 文件中设置基础 url

app.baseURL = 'http://localhost/project-root/public/'