2013-05-16 2 views
0
내가 YII을 사용하고

을에 일을하지 않는 렌더링 파일과 내가보기에 일부 자바 스크립트 파일을 렌더링 할, 다음 코드YII : 자바 스크립트 내 페이지

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 

}); 
+0

당신은 콘솔에 오류를받을 수 있나요 : 나는 위젯 내에서 그것을 사용하는 방법 다음은? 네트워크 탭에로드되는 파일을 볼 수 있습니까? – jribeiro

+0

아니요, 거기에 아무 것도 보이지 않습니다. – userTom

답변

2

프로젝트 protected 폴더 (기본적으로 그렇게한다)이 모두이 폴더에 대한 요청 (및 하위 폴더)가 거부된다는 것을 의미합니다 내용

deny from all 

을 folowing로 .htaccess 파일을 포함 할 수 있습니다. 브라우저 콘솔 오류에서 요청한 파일을 검색 할 수 없음을 확인해야합니다.

js 디렉토리에 .htaccess이 명시 적으로 액세스 할 수있는 경우가 아니면 해당 파일을 액세스 할 수 있습니다. 예 :

allow from all 

함께 CClientScript에 사용 CAssetManager.

$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

+0

어떻게 파일을 자산으로 푸시합니까? 내 컨트롤러에서 코드를 사용할 때 경로를 찾지 못하면/controller/assets/ – userTom

+0

으로 끝납니다. CAssetManager :: publish는 파일을 푸시합니다. 디렉토리에 적절한 경로를 입력하십시오. '__DIR __. '/ assets /''- 위젯의 자산 경로입니다. 모든 경로가 될 수 있습니다. 그것은 어디서든 수련 할 수 있습니다. 당신의 경우에는'Yii :: getPathOfAlias ​​('application.controller.assets')'가 될 수 있습니다. 하지만 컨트롤러 dir 내에서 js 파일을 저장하는 것이 적절한 방법이 아니라고 생각합니다. –