繁体   English   中英

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

[英]Debug Toolbar in Codeigniter 4 not working

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

1- CI_ENVIRONMENT = development in.env 文件

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

3- 增加$useKint = true; 在主索引中。公共文件夹中的 php 文件

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

这为我修复了它:

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

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

  1. 单击它以打开调试栏。

在此处输入图像描述

单击该图标您将能够看到这样的调试栏。 在此处输入图像描述

我也遇到了这个问题3天。 今天我通过将 /writable/debugbar/ 设置为 777 来解决这个问题(仅用于开发)

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

希望这可以为您和每个人提供解决方案

以下是您可以通过全新 CI4 安装检查的一些内容:

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

欢迎页面的页脚

  • 确保您已defined('CI_DEBUG') || define('CI_DEBUG', 1); defined('CI_DEBUG') || define('CI_DEBUG', 1); 在您的app/Config/Boot/development.php文件中

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

关于工具栏的 http 信息

  • 确保在 app/Config/Filters.php 中有一个名为$globals的变量,其中 'toolbar' 作为 'after' 键的值,并且 'toolbar' 与工具栏类正确映射到$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' ], ];

它可以是一些起点,希望这会有所帮助。

如果您不使用 PHP 的内置服务器,请正确设置基本 url

应用程序/配置/App.php

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

正如文档所说,您需要“php spark serve”,因为调试栏会在 spark 设置中查找 localhost:8080。

在您的 env 文件中必须使用公共文件夹修改 baseurl
app.baseURL = 'http://localhost/your-app/public'

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

我找到了 2 个解决方案:

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

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

希望这可以帮助! 此致

确保使用 HTTP 协议而不是 HTTP S

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

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

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

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

我把它改成了

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

当你使用 laragon

只需将以下行添加到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,
];

无需按照文档执行任何其他操作

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/'

我有同样的问题当我将目录“可写/调试栏”更改为 777(可写)时它解决了

如果正确,CodeIgniter Debut 图标将显示在右下角。

它在 CI 4.2.6 和一个经过大量修改的文件夹结构中运行良好, writable文件夹设置为 775,也在公共地址上(因此不需要 spark 服务)。 我的问题是$baseURL指向的地址是http://而不是https://的错字,所以 Chrome 检查员帮我找到了它。

在 App.php 中更改它,它就像一个魅力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM