Plugin将管理区中的以下url路由到控制器。
url: /admin/custom_route
控制器加载插件资产包,即CpAssets::class dependent &加载小枝模板,所有内容都加载,但是浏览器控制台给Craft.js一个错误,说明Craft没有在Jquery exenteded函数中定义。其中Craft.js和Craft.min.js都在加载,而实际上应该只加载其中的一个。
我一直在寻找yii的功能,但我感到困惑。
发布于 2021-08-27 13:05:01
为其他被同样的问题所困扰的人提供解决方案。
在您的template.twig中,您需要添加head标记并调用head函数,这将消除Craft.js错误。
<head>
{{ head() }}
</head>我通过查看src/web/assets/cp/CpAsset.php找到了解决方案,其中在第98- 103行定义了缺少的js Craft对象。
// Define the Craft object
$craftJson = Json::encode($this->_craftData(), JSON_UNESCAPED_UNICODE);
$js = <<<JS
window.Craft = {$craftJson};
JS;
$view->registerJs($js, View::POS_HEAD);其中View::POS_HEAD根据yii文档定义了脚本在文档中的加载位置。只是打个电话
{{ head() }}不会工作,它需要在文档的head元素标签内。
https://stackoverflow.com/questions/68953071
复制相似问题