【问题标题】:Zend Framework deployment to a subdomainZend Framework 部署到子域
【发布时间】:2012-12-21 17:56:40
【问题描述】:

我正在使用 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 操作采取行动,它们是文件夹?

【问题讨论】:

  • 您是否为abc.mydomain.com 配置了虚拟主机?
  • 我在本地 Apache 中做,但我无权访问服务器虚拟主机,我只能创建指向文件夹的子域。
  • 你的.htaccess 到位了吗?
  • 尝试使用谷歌翻译和类似的工具来纠正你的语言,在你发布问题之前,请!纠正这样的帖子是相当痛苦的。
  • .htaccess 已就位。我现在使用完整地址,但这不是一个好的解决方案。

标签: zend-framework


【解决方案1】:

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

退房:

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

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

【讨论】:

  • 对不起,但我在具有相同文件和相同限制的非共享域上遇到了同样的错误。
  • 这不是分享本身,而是映射。如果您无法将public 映射到子域的根目录,那么您必须采取特殊步骤。博客文章中概述的任何这些步骤 - 我将整个应用程序推送到链接或 cmets 中标识的特殊 .htacess 规则的受保护目录的方法 - 都应该完成这项工作。
  • 我在非共享服务器上的问题通过更改 Apache2 站点可用的虚拟目录并指向公共文件夹来解决。
【解决方案2】:

通常,baseUrl() view-helper 检测(在内部,使用 Zend_Controller_Front::getBaseUrl() 方法)您应用的基本 URL 是什么。

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

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

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

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

&lt;?php echo $this-&gt;headLink()-&gt;appendStylesheet($this-&gt;baseUrl('css/base.css')) ?&gt;

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

&lt;?php echo $this-&gt;headLink()-&gt;appendStylesheet($this-&gt;baseUrl() . '/css/base.css') ?&gt;

【讨论】:

  • 感谢您的回答,但是当我在 application.ini 中定义 baseUrl 时出现相同的错误(未找到),框架无法识别文件夹和控制器在子域中的差异,但它在主域中工作正常我不知道为什么。
  • 你在使用baseUrl() view-helper吗?
  • 是的,我完全按照你说的做了,然后我已经尝试了所有可能的方法来解决你的问题。
  • 是的,从问题级别的 cmets 来看,问题似乎不是 baseUrl() 的错误使用,而是虚拟主机/子域/托管问题。
  • 我不这么认为,因为除了这个 CSS 寻址之外,所有功能都可以正常工作,vhost 在服务器中不受我控制,并且子域设置得很好。你不认为我应该在主 index.php 中做一些事情来告诉框架这不是控制器,它是一个文件夹,如果可能的话?
猜你喜欢
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多