【发布时间】:2011-06-29 09:04:34
【问题描述】:
我正在开发的 Cake 插件中包含的一个 JavaScript 有问题。由于某种原因,一个 JavaScript 文件被解析为 PHP 文件,所以加载该文件会抛出这个错误,这是一个 PHP 解析错误:
<b>Parse error</b>: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
使用 HtmlHelper 调用脚本:
<?php echo $this->Html->script(array(
'/myplugin/scripts/tiny_mce/tiny_mce',
)); ?>
错误是由压缩的tiny_mce.js 文件触发的,该文件位于脚本目录的子目录中,未压缩的版本显示相同的行为。问题是我的本地设置没有问题。
远程服务器运行 PHP 5.2.17 并启用了mod_rewrite,我的 Cake 版本是 1.3.10 - 我的测试设置运行 PHP 5.3.4 和相同版本的 Cake。
这可能是重写或权限错误,但我的应用程序运行正常,其他脚本(包括子目录和远程脚本中的脚本)加载没有问题。
编辑: 在将 tiny_mce 目录从 Cake 安装中移出并链接到它之后,JavaScript 被正确解析。我猜这是一个与 mod_rewrite 和插件处理有关的错误,但我还没有找到与此行为相关的其他案例。
【问题讨论】:
-
您的生产服务器能否设置
.js文件以供PHP 解释器编译?这是我能想到的唯一原因。 -
我会尝试将
<script type="text/javascript" src="/path/to/tiny_mce.js">直接写入视图以测试服务器是否处理它。如果是,那么问题应该出在 cakephp 上。
标签: php javascript parsing cakephp plugins