在查看 CookBook 和一些代码示例时,我被告知要相信包含$this->App->js();
在 view.ctp 中会输出 JS [CDATA] 但它会吐出一个致命错误:
致命错误:在第 32 行的 /Users/work/Dropbox/Websites/cake-cart/app/View/Layouts/default.ctp 中的非对象上调用成员函数 js()
查看日志仅显示与以下相关的调度错误:
2012-11-26 13:15:39 错误:[MissingControllerException] 找不到控制器类 CssController。//app/webroot/index.php(92): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) {main}
我无法追踪它。也许没有足够的系统知识。有经验比较多的人加入吗?
关于我的设置的唯一事情 - 不确定它是否相关 - 是我正在使用引导主题并在 AppController APP/View/Themed/Bootstrap/ 中设置了主题
class AppController extends Controller {
public $theme = "Bootstrap";
...
这似乎可以为网站提供服务...但是对于这个 js() 致命错误和日志中的那个 CSSController 错误。
任何帮助将不胜感激,谢谢。
** 已编辑 **
好的......我正在弄清楚这个数字。看起来我引用的示例在 APP/View/Helper/AppHelper.php 中创建了一个公共函数,如下所示:
class AppHelper extends Helper {
public $helpers = array(
'Html',
'Form',
'Session',
'Js',
);
public function js() {
$shop = array();
$shop['basePath'] = Router::url('/');
$shop['params'] = array(
'controller' => $this->params['controller'],
'action' => $this->params['action'],
);
return $this->Html->scriptBlock('var Shop = ' . $this->Js->object($shop) . ';');
}
}
...所以这是有道理的,为什么它会是 default.ctp 中的 $this->App->js() .... 但我仍然收到错误