为什么在我的Cake插件中将JavaScript文件解析为PHP?

我正在开发一个Cake插件中包含的一个JavaScripts,我遇到了问题.由于某种原因,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和插件处理有关的错误,但我没有找到与此行为相关的其他情况.

解决方法:

我也遇到过这个问题,文件完全相同:Tiny MCE JavaScript.

这是由于CakePHP调度程序处理插件的webroot中的文件的方式.它选择对包含CSS或JS扩展的文件执行PHP包含,并且只是发生tiny_mce.js文件包含字符<?,这意味着它不是仅输出JavaScript文本而是尝试将后续行解析为PHP码.不出所料,它失败了! 这是灯塔上的raised as a bug(CakePHP的bug追踪系统).建议的修复方法是:

>创建从插件webroot到app webroot的符号链接(例如app / webroot / tinymce => app / Plugin / TinyMCE / webroot)
>关闭PHP INI中的PHP标签 – 无论如何都是一个很好的原则

简而言之,CakePHP可能无法修复此问题,因为他们希望保持对能够在JS / CSS文件中包含PHP代码支持.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...