0

将我的 zend Web 应用程序移动到 linux 服务器后,当我的布局尝试包含一个 javascript 文件时,我遇到了一个奇怪的问题:-

<?php echo $this->headScript()
 ->appendFile('/js/jquery/jquery.jqDock.min.js'); ?>

代码通过我的 zend_acl 工厂:-

if($objAcl->isAllowed($role, $request->getModuleName() .'::'.$request->getControllerName() .'::' .$request->getActionName(), 'view')){
     //carry on with loading....
}

请求对象如下所示:-

$request->module = 'ajfit'
$request->controller = 'js'
$request->action = 'jquery'
$request->_baseUri = '/js/jquery/jquery.jqDock.min.js'

当上面的代码被单步执行时,应用程序会抛出这个异常:-

$ex->message = "Resource 'ajfit::js::jquery' not found"

我当然知道我没有将此资源添加到我的 $objAcl zend_acl 中,并且我知道我不允许访问它,而且我不想这样做。这是一个存在于 /public/js/jquery/ 中的本地资源,应被绕过并视为非 mvc 资源。

当此应用程序在 Windows 中运行时,它识别出 '/js/jquery/jquery.jqDock.min.js' 是本地资源并且没有通过 zend_acl。

我的配置中是否缺少某些内容,也许是我的 .htaccess 文件中的设置?

我戴着这个把头发拉出来。

谢谢。

安德鲁

4

1 回答 1

1

一定是你的.htaccess 有问题,你有那些行吗?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

如果是,您的 apache 是否配置为允许使用 htaccess?

于 2012-10-13T13:51:53.287 回答