[英]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 打開時,會呈現歡迎頁面,但不會呈現調試工具欄。 我錯過了什么嗎?
這為我修復了它:
# CI_ENVIRONMENT = production
並更改為development
的值app.baseURL
值更改為您應用的基本 URL(這似乎是您錯過的步驟)我也遇到了這個問題3天。 今天我通過將 /writable/debugbar/ 設置為 777 來解決這個問題(僅用於開發)
chmod -R 777 [yourappname]/writable/debugbar/
希望這可以為您和每個人提供解決方案
以下是您可以通過全新 CI4 安裝檢查的一些內容:
確保您已defined('CI_DEBUG') || define('CI_DEBUG', 1);
defined('CI_DEBUG') || define('CI_DEBUG', 1);
在您的app/Config/Boot/development.php文件中
嘗試使用命令行php spark serve
啟動您的應用程序,以便您可以獲取有關您的應用程序訪問工具欄的一些信息。
確保在 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.