javascript - Yii Register 核心脚本正在调用 Controller 名称

标签 javascript url-rewriting yii tinymce

我最近为 Yii 打开了 UrlManager 的路径版本。我正在运行 TinyMCE,这已经可以预见地坏掉了。我可以看到问题,但不知道如何解决。它正在使用 Controller 调用脚本-

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

Controller 称为内容,脚本包含在根目录的 Assets 文件夹中。

脚本的正确路径是-

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

有谁知道如何阻止 Yii 通过 Controller ID 调用脚本?抱歉,如果这是显而易见的事情,我对 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);

这些有什么明显的问题吗?

最佳答案

我不确定这是 UrlManager 的问题吗? 可能是不使用基本 URL 函数的情况:

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

这指向根目录,因此您可以像这样使用它:

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

否则我认为这可能是一个 jQuery 问题。你自己加载 jQuery 吗?我建议强制 Yii 在主布局(或您为此 View 使用的任何布局)中加载 jQuery,如下所示:

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

我发现这解决了 Yii 的大多数 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); ?>

根据您希望将其加载到就绪 block 还是头部,使用POS_READYPOS_HEAD

希望这能解决您的问题

关于javascript - Yii Register 核心脚本正在调用 Controller 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520704/

相关文章:

javascript - 如何在不使用 jQuery 的情况下取消绑定(bind)通过 jQuery 绑定(bind)的事件处理程序

IIS 8.5 URL 重写更改 TLD

.htaccess - 从 URL 中隐藏目录名称

apache - Yii + EasyPHP 运行时路径不可写?

php - 如何使用 Selenium webdriver 获取浏览器 sessionId

php - yii 重定向不工作

javascript - 当第 n 个嵌套数组不再有嵌套数组时停止的递归函数

javascript - 有没有一种有效的方法来查找未使用哪些 JavaScript 包含?

javascript - 如果元素发生变化,如何向每个元素添加或删除类

regex - 当我向 Htaccess 添加点运算符时出现一些错误