2010-08-04 110 views
-1

我已经在本地机器上安装了zend框架。我在httpd.conf中配置了一个虚拟主机,并在我的主机文件(127.0.0.1 mysite)中添加了一行。我正在运行Windows 7.一切正常。问题是当我上传托管服务器的路径混淆起来。 我正在上传一个名为zf-framework的远程目录。要访问索引页,我需要输入这个网址:http://mysite/zf-framework/public。它显示索引页面,但当我按页面上的任何链接时,它们会混在一起,最终会变成http://mysite/controller/action,实际上它应该是http://mysite/zf-framework/public/controller/action。我已经找到了解决这种情况的方法......使用echo $ this-> baseUrl(link)获取layout.phtml中的任何链接。提交表单时问题更为严重。我不能在那里使用baseUrl ....或者我不知道如何使用它。有没有办法编写一些通用配置的东西,以便这可以由框架自动解决。比方说在index.php或bootstrap.php中写一些会自动修复路径的东西?zend与路径的框架问题

回答

0

我不是100%,但如果你在routes.ini中指定路由为zf-framework/public/Controller/Action等,这应该可以解决你的问题。

我会看到这是一个bandaid,但我不是100%确定如何正确解决您的问题,除非您修改远程服务器上的vhosts文件以将文档根设置为公用文件夹。如果这不是一个选项,那么上面应该可以工作,但是要知道所有的文件都可以从每个人(至少是你的文件夹结构)访问。如果数据库模式位于/ data目录中,我不确定这可以造成什么样的危害(如果有的话)。

如果可能的话,最好尝试让公共设置为web根目录。

1

如果您使用的是Zend_Application,那么将以下内容添加到您的configs/application.ini文件中。

resources.frontController.baseUrl =“/你的路径,在这里”

如果你不使用Zend_Application,那么这样做在你的引导,或index.php文件。

$front = Zend_Controller_Front::getInstance(); 
$front->setBaseUrl('/your-path-here'); 

您将不必使用$这 - >的baseUrl()提交表单,以同样的动作和控制器时(刚离开了形式标记的action属性),或者当使用重定向动作帮手。然而,你的视图脚本中的链接将需要你$ this-> baseUrl('/ url-without-base'),这对我来说不算太糟糕。

+0

你帮我解决了另一个问题!呵呵谢谢! – 2017-05-21 03:01:37