簡體   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