JavaScript文件取决于Yii2中的JavaScript代码块(用于dojo配置)

我正在尝试使用Yii 2.0注册dojo javascript文件.
根据dojo文档,必须考虑在实际dojo.js之前加载dojo config代码块.但是,在HTML输出中,我的自定义javascript代码始终在dojo.js之后加载.

这是我的代码

$this->registerJs('dojoConfig="async:true,isDebug:true";', $this::POS_HEAD,'dojoconfiguration');
$this->registerJsFile('/dojo_toolkit/dojo/dojo.js', ['depends' => [\yii\web\JqueryAsset::className()], 'position' => yii\web\View::POS_HEAD]);

在HTML中看起来像这样:

<script src="/dojo_toolkit/dojo/dojo.js"></script>
<script type="text/javascript">dojoConfig="async:true,isDebug:true";</script>

有什么建议吗?

解决方法:

对于相同的位置,Yii2始终首先放置内联脚本,然后放置实际的外部文件.因此,您无法通过将它们都添加到< head>来解决此问题.

最好让registerJsFile()调用POS_END在最后加载它.仍将在进行document.ready()调用之前加载它.

这样,您可以确保在加载之前已解析标头中的配置.最坏的情况是,您可以在打开body标签后立即使用POS_BEGIN加载它,但是由于加载javascript会阻止,我会尽量避免这种情况.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...