请求中包含部分javascript源代码的控制器无效


Zend Framework Strange Errors Invalid Controller with part of javascript source in request

我的网站日志中有非常奇怪的错误。该网站是基于Zend框架,我经常有这样或类似的错误:

2011-10-16T03:02:57+02:00 ERR (3): Error requesting: /js/min/,e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find( from ip: 24.132.216.36
Invalid controller specified (js)
#0 /application/include/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /application/include/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /application/Bootstrap.php(271): Zend_Application_Bootstrap_Bootstrap->run()
#3 /application/include/Zend/Application.php(366): Bootstrap->run()
#4 /public/index.php(11): Zend_Application->run()
#5 {main}

现在我知道没有控制器/js。有趣的是,在请求中是jQuery UI脚本的一部分。我没有关于什么浏览器做了这些请求和从哪个网站的信息。jQueryUI中的脚本部分来自缩小的jQueryUI Dialog 1.8.16文件,但有时错误是缩小脚本的不同部分。

我试着找到jQuery UI Dialog 1.8.16的源代码,我发现这是脚本中的代码:

uiDialogTitle = $('<span></span>')
    .addClass('ui-dialog-title')
    .attr('id', titleId)
    .html(title)
    .prependTo(uiDialogTitlebar);
//handling of deprecated beforeclose (vs beforeClose) option
//Ticket #4669 http://dev.jqueryui.com/ticket/4669
//TODO: remove in 1.9pre
if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
    options.beforeClose = options.beforeclose;
}
uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();

这些错误总是只在jQueryUI精简脚本中显示。我还有许多其他脚本,但只有jQueryUI源有时出现在get请求中。有人有类似的错误,可以帮助吗?

这听起来像你的js代码的请求是通过你的Zend框架引导重写?在.htaccess文件中,您可能希望向Zend Framework应用程序添加一个非特定url模式的条目。我通常是这样做的:

RewriteEngine on
RewriteRule       ^images.*$      - [L]
RewriteRule       ^img.*$         - [L]
RewriteRule       ^js.*$          - [L]
RewriteRule !'.(js|ico|gif|jpg|png|css|pdf|doc|xls|csv|txt)$ index.php

我也有同样的问题,htaccess的变化帮助了我,但后来我发现真正的原因是js文件是空的。在js文件中添加一些代码后,问题解决了,根本不需要更改htaccess