0

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

创建页面就绪:

(function() {
    amount_of_pages = 1;

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

    ... // more code inside the file

});
4

1 回答 1

2

您的项目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

于 2013-05-16T09:46:37.510 回答