2

我正在将 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 文件中挖掘!接下来我应该尝试什么?

4

2 回答 2

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 减去查询字符串。希望有帮助

于 2012-11-24T05:36:27.360 回答
0

你可以这样做

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

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

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

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

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

于 2012-11-24T06:14:34.283 回答