我正在使用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
});
答案 0 :(得分:2)
您的项目protected
文件夹可以(默认情况下)包含.htaccess
文件,其中包含以下内容
deny from all
这意味着将拒绝对此文件夹(和子文件夹)的所有请求。您应该在浏览器控制台错误中看到无法检索到请求的文件
除非.htaccess
目录中有另一个js
明确允许访问它。 E.g。
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');