Yii 中的许多模块、扩展或其他东西都尝试从资源管理器加载 jQuery。这很好,我已经不再对包含进行硬编码,而是采用“registerCoreScript”。
唯一的问题是它似乎是在 HEAD 底部附近加载的。我有很多其他依赖于 jQuery 的脚本和代码,它们是在它之前加载的。我如何确保 jQuery 是第一个加载的?
事实是我不明白为什么这不是默认行为。 jQuery 不依赖于任何东西,但是很多脚本依赖于它......
最佳答案
您可以使用包
property of CClientScript组件,并指定depends
:
Yii::app()->clientScript->addPackage('give-some-name-to-script', array(
'baseUrl'=>'base URL for the script files', // or basePath
'js'=>array(list of js files relative to basePath/baseUrl),
'depends'=>array('jquery')
));
或者在 config/main.php 配置中执行此操作:
'clientScript'=>array(
'packages'=>array(
'give-this-package-name'=>array(
'basePath'=>'alias of the directory containing the script files',
'js'=>array('first.js','second.js'),
'depends'=>array('jquery')
),
)
然后使用 registerPackage
:
Yii::app()->clientScript->registerPackage('your-package-name');
我认为这是实现这一目标的唯一方法。当然,这需要您将 javascript 分组到一个包中并给它一些名称,或者将每个脚本声明为一个包。
<小时/>关于jquery - Yii 让 jQuery 首先加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13286864/