Zend Framework部署到子域

时间:2012-12-19 19:11:31

标签: zend-framework

我正在使用Zend Framework开发一些应用程序。我在我的localhost上开发,然后将其上传到某个子域,如abc.mydomain.com。当我上传我的布局index.phtml时,我得到以下所有网址:

abc.mydomain.com/css/base.css 404 (Not Found)

在Web浏览器控制台上,但我的CSS位于公共文件夹中。

我链接此css的代码是:

<?php echo $this->headLink()->appendStylesheet('/css/base.css') ?>

如何使这些地址有效?

完成我的问题:框架如何区分文件夹和控制器?或者我怎么能告诉框架不对这些URL ass动作采取行动,它们是文件夹?

2 个答案:

答案 0 :(得分:0)

通常,baseUrl()视图助手会检测(在内部使用Zend_Controller_Front::getBaseUrl()方法)应用的基本网址。

但有时候,根据你的vhost设置和doc根目录中你公共文件夹的位置 - 你需要明确告诉应用你的base-url是什么。

application/configs/applicatiom.ini中,您可以设置:

resources.frontController.baseUrl = "http://abc.mydomain.com"

然后在视图脚本中,您可以使用baseUrl() view-helper和 relative url(相对于您设置的基础)访问公共资源,如下所示:

<?php echo $this->headLink()->appendStylesheet($this->baseUrl('css/base.css')) ?>

虽然我看到很多人将它用作仅前缀:

<?php echo $this->headLink()->appendStylesheet($this->baseUrl() . '/css/base.css') ?>

答案 1 :(得分:0)

听起来像是与托管子域相关联的映射问题。通常在共享主机上,您无法将项目的public文件夹映射到子域。因此,需要各种重写技巧将页面和资产请求映射到正确的目录,而不会让ZF混淆请求的URL。

退房:

http://www.papayasoft.com/2010/05/08/zend-framework-shared-hosting/

有关问题的描述和解决问题的各种方法。