Yii: файлы JavaScript, которые я отображаю, ничего не делают на моей странице

Я использую Yii, и я хочу визуализировать некоторые файлы javaScript в моем представлении, я могу сделать их с помощью следующего кода

Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/protected/components/js/ForCreatePage.js',CClientScript::POS_HEAD);
Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/protected/components/js/createPageReady.js',CClientScript::POS_READY);

Но когда я пытаюсь использовать функцию из нее или использовать готовый файл, код ничего не делает

Часть файлов ForCreatePage:

function link_to_generated(data) {  
    alert($(data).find('ff_result').text());
}

createPageReady:

(function() {
    amount_of_pages = 1;

    $("#for-movie").css('width',(($('#for-movie-container-2').width()-10)+'px'));

    ... // more code inside the file

});

1 ответ

Ваш проект protected папка может (и по умолчанию это так) содержать .htaccess файл с следующим содержанием

deny from all

это означает, что все запросы к этой папке (и подпапкам) будут отклонены. Вы должны увидеть в консоли браузера ошибку, что запрошенные файлы не могут быть восстановлены

Если нет другого .htaccess в js каталог, который явно разрешает доступ к нему. Например

allow from all

использование CAssetManager вместе с CClientScript, Вот как я использую его в виджетах:

$assets=Yii::app()->assetManager->publish(__DIR__.'/assets/');
Yii::app()->clientScript->registerCssFile($assets.'/css/styles.css');
Yii::app()->clientScript->registerScriptFile($assets.'/js/scripts.js');

http://www.yiiframework.com/doc/api/1.1/CAssetManager

Другие вопросы по тегам