Yii:我渲染的JavaScript文件在我的页面上没有做任何事情

时间:2013-05-16 08:26:42

标签: jquery yii clientscript

我正在使用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);

但是当我尝试使用其中的函数或使用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 个答案:

答案 0 :(得分:2)

您的项目protected文件夹可以(默认情况下)包含.htaccess文件,其中包含以下内容

deny from all

这意味着将拒绝对此文件夹(和子文件夹)的所有请求。您应该在浏览器控制台错误中看到无法检索到请求的文件

除非.htaccess目录中有另一个js明确允许访问它。 E.g。

allow from all

CAssetManagerCClientScript一起使用。以下是我在小部件中使用它的方法:

$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