2012-11-22 41 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問題? 這可能是不使用基本URL功能的情況下:

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

這點到根目錄,所以你可以使用它像:

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

否則,我認爲它可能是一個jQuery問題。你自己加載jQuery嗎?我建議迫使Yii中加載的jQuery的主要佈局(或任何佈局您使用的是此觀點),像這樣:

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

我覺得這是解決大多數的jQuery問題與誼。刪除您可能手動添加到jQuery的任何引用。此外,加載JS文件時,建議您使用registerScriptFile

<?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_READYPOS_HEAD

希望這可以解決您的問題

+0

HMN,以爲用的是基函數。我現在已經粘貼了腳本調用。感謝您的答覆。 – goose

+0

不要指向資產目錄,Yii auto會將腳本添加到資產。 –

+0

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

2

我發現我要去哪裏錯了,或者至少有工作。

我replaced-

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

與 -

Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/assets/js/jquery.js', CClientScript::POS_HEAD); 
相關問題