我遇到了 clientScript 和 assetsManager 的问题。我正在发布一个文件目录,然后添加一个我稍后注册的包。包被添加得很好,但是当它被渲染时,url 是错误的。
发布文件并添加包:
// Publish the directory
$scriptFiles = Yii::app()->assetManager->publish(Yii::getPathOfAlias('library').'/assets/jquery.plugins/jquery.dropdown/', true, 0);
// Add the package
Yii::app()->clientScript->packages = array(
'jquery.dropdown'=>array(
'baseURL'=>$scriptFiles,
'js'=>array('jquery.dropdown.js', 'jgestures.min.js'),
'depends'=>array('jquery'),
),
);
包被添加并发布到应用程序的资产目录,这是 Yii::app()->clientScript->packages 的输出。
Array
(
[jquery.dropdown] => Array
(
[baseURL] => /assets/a4017faa
[js] => Array
(
[0] => jquery.dropdown.js
[1] => jgestures.min.js
)
[depends] => Array
(
[0] => jquery
)
)
)
虽然,当我注册包宽度 Yii::app()->clientScript->registerPackage('jquery.dropdown') 时,这就是渲染的内容:
<script type="text/javascript" src="/assets/961fc04/jquery.dropdown.js"></script>
<script type="text/javascript" src="/assets/961fc04/jgestures.min.js"></script>
注意 src 属性中的 URL,错误的目录。有没有人遇到过这种情况和/或知道出了什么问题?