2013-04-19 3 views
0

У меня проблема с clientScript и assetManager. Я публикую каталог файлов, а затем добавляю пакет, который я позже регистрирую. Пакет добавляется просто отлично, но когда он становится визуализированным, URL-адрес неверен.Проблема Yii clientScript/assetManager при регистрации/рендеринге

Публикация файлов и добавления пакета:

// 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 :: приложение() -> clientScript- > пакеты.

Array 
(
    [jquery.dropdown] => Array 
     (
      [baseURL] => /assets/a4017faa 
      [js] => Array 
       (
        [0] => jquery.dropdown.js 
        [1] => jgestures.min.js 
       ) 
      [depends] => Array 
       (
        [0] => jquery 
       ) 
     ) 
) 

Хотя, когда я зарегистрировать ширина пакета Yii :: приложение() -> 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> 

Обратите внимание на URL в атрибуте src, неправильном каталоге. Кто-нибудь сталкивался с этим раньше и/или знал, что не так?

ответ

1

Ваша проблема заключается в следующем

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

Менеджер пакетов фактически публикует пакет для вас, так что вы делаете здесь издательскую тот же файл дважды. Установите $scriptFiles на Yii::getPathOfAlias('library').'/assets/jquery.plugins/jquery.dropdown/, и он должен работать нормально.

Here's a basic article на Yii-пакетах, если вам нравится делать еще чтение.

EDIT: Я вижу, что вы пробовали установить baseUrl, чтобы избежать публикации в автоматическом режиме, однако вы указали его baseURL, это делает Yii автоматически публиковать его, а не использовать путь, который вы хотите ему предоставить.

+0

Спасибо, это решило одну из проблем, также пришлось использовать псевдоним в basePath. –

Смежные вопросы