首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后端导致Craft.js错误的手工CMS插件AssetBundle

后端导致Craft.js错误的手工CMS插件AssetBundle
EN

Stack Overflow用户
提问于 2021-08-27 12:00:51
回答 1查看 79关注 0票数 0

Plugin将管理区中的以下url路由到控制器。

url: /admin/custom_route

控制器加载插件资产包,即CpAssets::class dependent &加载小枝模板,所有内容都加载,但是浏览器控制台给Craft.js一个错误,说明Craft没有在Jquery exenteded函数中定义。其中Craft.js和Craft.min.js都在加载,而实际上应该只加载其中的一个。

我一直在寻找yii的功能,但我感到困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-27 13:05:01

为其他被同样的问题所困扰的人提供解决方案。

在您的template.twig中,您需要添加head标记并调用head函数,这将消除Craft.js错误。

代码语言:javascript
复制
<head>
{{ head() }}
</head>

我通过查看src/web/assets/cp/CpAsset.php找到了解决方案,其中在第98- 103行定义了缺少的js Craft对象。

代码语言:javascript
复制
// 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文档定义了脚本在文档中的加载位置。只是打个电话

代码语言:javascript
复制
{{ head() }}

不会工作,它需要在文档的head元素标签内。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68953071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档