【问题标题】:CakePHP's DebugKit assets are not loadingCakePHP 的 DebugKit 资产未加载
【发布时间】:2014-11-15 20:11:34
【问题描述】:

现在我知道已经可以解决这个问题了,我可以将资产复制到项目自己的 webroot 中。不过,可能会稍微这样做。 . .

我确实想知道为什么我不断收到此问题。我在 AssetDispatcher 代码中四处寻找,并在其中放置了一些 CakeLog::write() 语句,当我调用页面时,调度程序只被调用一次。不应该为正在请求的每个资产调用它吗?除了我可以查看的这个类之外,还有其他处理资产调度的文件吗?

我全新安装了 cakephp 2.5.5 和 DebugKit 2.2.4

我按照如何加载插件的说明进行操作,实际上 php 代码正在查看插件并尝试加载它。它只是没有正确显示,因为它在插件中找不到 css 和 js。

我做了一些搜索,发现了一些说明插件加载的顺序和带有 bootstrap.php 文件的调度程序的顺序在这里很重要。我在这里使用全新安装的 cakephp 并且该订单已经存在。 DebugKit 被加载,然后是调度器。

大多数情况下,我可以使用一些帮助来调试调度程序,因为这似乎是问题所在。以前从未接触过这些。 cakebook 提供了有关如何编写自己的内容的一般信息,但我对这里的生命周期更感兴趣。

或者更像是我让这变得过于复杂,这里有一个更简单的事情可以解决这个问题。任何信息表示赞赏。

我在下面的 DebugKit 的初始设置中包含了相关代码,以防我错过了一些简单的事情或忽略了我认为我已经完成的事情。

app/Config/bootstrap.php

CakePlugin::load( 'DebugKit' );
Configure::write('Dispatcher.filters', array(
    'AssetDispatcher',
    'CacheDispatcher'
));

app/Controller/AppController.php

$components = array( 'DebugKit.Toolbar' );

应用程序/视图/布局/default.ctp 文件底部

                        <p>
                            <?php echo $cakeVersion; ?>
                        </p>
                </div>
        </div>
</body>
</html>

这些是 cake 无法解决的路径

/debug_kit/css/debug_toolbar.css
/debug_kit/js/js_debug_toolbar.js
/debug_kit/image/cake.icon.png

这些是 cake 自己生成的 url

【问题讨论】:

  • 路径正确。 URL 重写是否正常工作?访问这些 URL 时返回了什么?

标签: cakephp plugins url-rewriting


【解决方案1】:

在升级到最新的 CakePHP 之前,我也遇到了同样的问题。我通过在 bootstrap.php 中添加以下代码来解决它:

Configure::write('Dispatcher.filters', array(
    'AssetDispatcher',
    'CacheDispatcher'
));

升级到最新版本时,还需要检查index.php和htaccess文件是否有变化。

【讨论】:

    【解决方案2】:

    以下是您遵循的步骤:

    1. 安装 CakePHP 并检查安装。

    2. 下载最新的DebugKit 2.2.1,兼容Cake 2.4

    3. 将内容复制到 cake/plugins/DebugKit 文件夹。

    4. 在app/Config/bootstrap.php中调用CakePlugin::load('DebugKit');

    5. 通过在 AppController.php 类中调用 public $components = array('DebugKit.Toolbar'); 来包含工具栏组件

    6. 在app/Config/core.php中设置Configure::write('debug', 1);

    7. 从我在 app/View/Layouts/default.ctp 中的布局中删除“sql_dump”元素

    8. 将 app/Plugin/DebugKit/webroot/ 的所有内容(文件夹 'css'、'js'、'img')复制到 app/webroot/debug_kit/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 2011-10-04
      • 1970-01-01
      • 2016-12-16
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多