2012-11-22 2 views
1

최근 Yii에 대한 UrlManager의 경로 버전이 활성화되었습니다. 나는 TinyMCE를 운영하고 있으며 이것은 예측 불가능하게 고장났습니다. 문제를 볼 수는 있지만 수정할 방법을 정확히 알지 못합니다. 컨트롤러로 스크립트를 호출 중-Yii 레지스터 핵심 스크립트가 컨트롤러 이름을 호출합니다.

http://localhost:8888/content_management/content/assets/js/jquery.js 

컨트롤러는 컨텐츠라고하며 컨트롤러는 루트 디렉토리의 자산 폴더에 있습니다.

스크립트에 대한 올바른 경로 - 이것도

http://localhost:8888/content_management/assets/js/jquery.js 

사람이 컨트롤러 ID를 통해 스크립트를 호출 YII을 중지하는 방법을 알고 있나요? 미안하지만 이것이 명백한 일이라면, 나는 여전히 Yii에게 상당히 새로운 것입니다. 사전에

감사합니다,

아마이를 추가해야합니다. 다음은 스크립트를 호출하는 방법입니다.

 Yii::app()->clientScript->registerCoreScript('jquery'); 
     Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/assets/js/tinymce/jscripts/tiny_mce/tiny_mce.js', CClientScript::POS_HEAD); 

분명히 잘못된 점이 있습니까?

답변

3

UrlManager 문제인지 잘 모르겠습니다.

Yii::app()->request->baseUrl 

당신이 좋아 사용합니다, 그래서 이것은 루트 디렉토리를 가리키는 :

<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/my_javascript_file.js"></script> 

그렇지 않으면 나는 그것이 jQuery를 할 수 있다고 생각 이 기본 URL 기능을 사용하지 않는 경우 일 수 발행물. jQuery를 직접로드하고 있습니까? 그래서 같은 메인 레이아웃 (또는이 뷰 중 레이아웃을 사용하는)에 jQuery를로드 할 YII을 강요하는 것이 좋습니다 :

<?php Yii::app()->clientScript()->registerCoreScript('jquery'); ?> 

나는이 YII에 가장 jQuery를 문제를 해결 찾을 수 있습니다. jQuery에 수동으로 넣을 수있는 참조를 제거하십시오.

<?php Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl.'/js/my_javascript_file.js', CClientScript::POS_HEAD); ?> 
<?php Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl.'/js/my_javascript_file.js', CClientScript::POS_READY); ?> 

당신이 준비 블록이나 머리에로드하려는 처리 여부에 따라 POS_READY 또는 POS_HEAD

를 사용 JS 파일을로드 할 때 또한, 당신이 registerScriptFile를 사용하는 것이 좋습니다

희망 사항으로 문제를 해결합니다.

+0

뿐인데

Yii::app()->clientScript->registerCoreScript('jquery'); 

을 다 교체. 지금 전화 통화에 붙여 넣었습니다. 귀하의 회신에 감사드립니다. – goose

+0

애셋 디렉토리를 지정하지 않으면 Yii 자동으로 애셋에 스크립트를 추가합니다. –

+0

http://www.yiiframework.com/wiki/148/understanding-assets/ –

2

어디서 잘못되었거나 최소한 해결해야 할 부분을 발견했습니다.

나는 내가 기본 기능을 사용하여 줄 알았는데, HMN

Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/assets/js/jquery.js', CClientScript::POS_HEAD); 
관련 문제