簡體   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