繁体   English   中英

Yii clientScript / assetManager在注册/渲染包时出现问题

[英]Yii clientScript/assetManager issue when registering/rendering package

我在clientScript和assetManager上遇到问题。 我正在发布文件目录,然后添加一个程序包,以后再注册。 该软件包被添加就很好了,但是当它被渲染时,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,错误的目录。 以前有没有人遇到过和/或知道怎么了?

您的问题在于以下

$scriptFiles = Yii::app()->assetManager->publish(Yii::getPathOfAlias('library').'/assets/jquery.plugins/jquery.dropdown/', true, 0);

程序包管理器实际上为您发布了程序包,因此您在这里要做的是两次发布相同的文件。 $scriptFiles设置$scriptFiles Yii::getPathOfAlias('library').'/assets/jquery.plugins/jquery.dropdown/ ,它应该可以正常工作。

如果您想阅读更多内容, 这是有关Yii软件包的基本文章

编辑:我现在看到您已经尝试设置baseUrl以避免自动发布,但是您将其拼写为baseURL ,这使Yii自动发布它,而不是使用您想要给它的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM