【问题标题】:Path to CKEditor in CakePHP app on Zeus serverZeus 服务器上 CakePHP 应用程序中 CKEditor 的路径
【发布时间】:2012-10-30 11:56:56
【问题描述】:

我正在将 CKEditor 集成到在 Zeus 服务器上运行的 CakePHP 应用程序中(因此不能使用 .htaccess - 我必须改用 rewrite.script)。问题是,CKEditor 放入页面头部的路径不起作用,所以编辑器不会加载。

例如,一个生成的路径是:

http://www.example.com/js/ckeditor/config.js?t=B8DJ5M3

如果我去

http://www.example.com/js/ckeditor/config.js

我可以看到文件,但是当我在末尾添加 ?t=B8DJ5M3 时,Cake 抱怨它找不到 jsController。

我不知道该怎么办 - 是否在 CakePHP、CKEditor 或 rewrite.script 文件中进行挖掘!接下来我应该尝试什么?

【问题讨论】:

  • 你真的需要这个参数吗?如果它总是相同,您可以尝试将其直接添加到 .js 文件的变量中。无论如何,它应该可以使用它......你能告诉我们你是如何加载 .js 文件的吗?你是使用助手还是直接使用?
  • 似乎该查询仅用于缓存,正如另一条评论中所说。所以它的值无关紧要......问题来自于查询首先存在的事实......服务器正试图将其作为文件url的一部分读取。无论如何感谢您的帮助。

标签: url-rewriting ckeditor cakephp-2.0


【解决方案1】:

URL 末尾的查询字符串用于确保文件未被缓存。似乎 Zeus 服务器上的 GET 请求配置/路由中的某些内容试图找到包含查询字符串的确切文件。您将需要创建一个 Rewrite,它在 URL 上执行 goto 减去查询字符串。我在 Drupal 论坛上发现了一篇非常可靠的文章,有人整理了一个可以帮助您的脚本:http://drupal.org/node/46508

RULE_0_START:
# get the document root
map path into SCRATCH:DOCROOT from /
# initialize our variables
set SCRATCH:ORIG_URL = %{URL}
set SCRATCH:REQUEST_URI = %{URL}

# see if theres any queries in our URL
match URL into $ with ^(.*)\?(.*)$
if matched then
  set SCRATCH:REQUEST_URI = $1
  set SCRATCH:QUERY_STRING = $2
endif
RULE_0_END:

然后从那里处理你的 goto 减去查询字符串。希望有帮助

【讨论】:

  • 太好了,我试试看!
  • 成功了!非常感谢 - 我已经为此烦恼了好几个星期!
  • 赏金已过期 - 我已重新启动它,但无法在 24 小时内授予它......我会尽可能地这样做!
  • 很高兴成功了!我曾与 CKEditor 合作过一次,我记得源代码只是一场彻头彻尾的噩梦
【解决方案2】:

你可以这样做

在要显示编辑器的视图中,将以下脚本放在页面顶部(或要包含编辑器的 textarea 之前的某个位置):

<?php echo $this->Html->script('ckeditor/ckeditor');?>

此 scipt 将在您的视图中包含“webroot/js/ckeditor.js”文件。 创建 textarea 并给它一个名为“ckeditor”的类

<?php echo $this->Form->textarea('content',array('class'=>'ckeditor'))?>

瞧!编辑器现在显示而不是原始文本区域。

【讨论】:

  • 谢谢,但这一点不起作用!它正确地完成了所有这些,但是当它尝试引用该文件时,它找不到它。
猜你喜欢
  • 2011-10-26
  • 2018-05-06
  • 1970-01-01
  • 2013-05-03
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多