0

我正在使用 Zend Framework 开发一些应用程序。我在本地主机上开发,然后将其上传到 abc.mydomain.com 等子域。当我上传我的布局 index.phtml 时,我得到所有 URL 的以下内容:

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

在网络浏览器控制台上,但我的 CSS 在公用文件夹中。

我链接这个css的代码是:

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

我应该怎么做才能使这些地址起作用?

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

4

2 回答 2

0

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

查看:

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

用于描述问题和解决问题的各种方法。

于 2012-12-21T09:56:40.363 回答
0

通常,baseUrl()view-helper 检测(在内部,使用该Zend_Controller_Front::getBaseUrl()方法)您的应用程序的 base-url 是什么。

但有时,根据您的虚拟主机设置和文档根目录中公用文件夹的位置 - 您需要明确告诉应用程序您的基本 URL 是什么。

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

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

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

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

虽然我看到很多人只使用它作为前缀:

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

于 2012-12-20T09:27:58.767 回答