Zend framework Zend View帮助程序奇怪的问题

Zend framework Zend View帮助程序奇怪的问题,zend-framework,view,helper,base-url,Zend Framework,View,Helper,Base Url,我一直在本地主机(OS:Snow Leopard)上进行zend framework项目,当我在托管服务器(共享托管)上上载文件时,我在那里使用的视图帮助程序出现了一些错误 更具体地说: 项目结构如下:(我输入了一些不相关的子文件夹,论文中的数字在此仅供参考,不包含在项目中的文件夹名称中) 在helpers(1)文件夹中,我有一个view helper,BaseURL.php: class Zend_View_Helper_BaseURL { function baseURL()

我一直在本地主机(OS:Snow Leopard)上进行zend framework项目,当我在托管服务器(共享托管)上上载文件时,我在那里使用的视图帮助程序出现了一些错误

更具体地说:
项目结构如下:(我输入了一些不相关的子文件夹,论文中的数字在此仅供参考,不包含在项目中的文件夹名称中)

在helpers(1)文件夹中,我有一个view helper,BaseURL.php:

class Zend_View_Helper_BaseURL
{
    function baseURL()
    {
        $fc = Zend_Controller_Front::getInstance();
        return $fc->getBaseUrl();
    }
}
例如,我在布局中使用它来编写CSS文件、JS文件等内容的路径,类似这样的内容:

<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
上面的错误是针对在管理布局(在管理模块中调用)中使用$this->baseURL()的行

起初我认为可能是因为helper是在另一个模块(默认模块)中声明的,它不是由框架在管理模块中找到的。但为什么一切都能在本地运行呢?我不明白。 另外,如果我在同一admin.phtml布局文件中将$this->baseURL()更改为$this->baseURL(),则在管理模块中,一切都可以正常工作(在线和本地)

如果有人能告诉我我错过了什么,我会很感激的

注:由于我还不清楚,也许有人可以告诉我:在一个模块中声明的助手在网站的所有模块中都可用?(当地开发部门告诉我是的,因为它在当地工作,但是上传的项目有什么问题?)


谢谢。

如错误消息中所述,您需要在视图帮助程序前面加上
Cmsadmin\u view\u helper\u
而不是
Zend\u view\u helper\u
。错误消息告诉它在哪些路径中查找各种前缀。

检查此项

$this->baseUrl(“”)

保持参数为null可以解决此问题。 您将在布局和default.php中获得baseurl。

替换此:-

<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>

我想提两件事:1。我在cmsadmin模块中有一个助手,名为AdminBaseURL.php,代码是:类Zend_View_helper_AdminBaseURL{function AdminBaseURL(){$fc=Zend_Controller_Front::getInstance();return$fc->getBaseUrl().“cmsadmin/”;}}和2。不过,为什么我在现在的状态下使用baseUrl()而不是baseUrl()会起作用呢?还有第三件事要提:我在同一个文件夹中还有另一个名为Zend_View_helper_MediaDir的助手:cmsadmin/views/helpers,这个助手工作起来没有任何问题。
An error occurred
Application error
Exception information:

Message: Plugin by name 'BaseURL' was not found in the registry; used paths: Cmsadmin_View_Helper_: /path_to_site_like_public_html/application/modules/cmsadmin/views/helpers/ Zend_View_Helper_: Zend/View/Helper/
<script src="<?php echo $this->baseURL();?>/public/js/somejavascript.js></script>
<script src="<?php echo $this->baseUrl();?>/public/js/somejavascript.js></script>