【问题标题】:images in Zend Framework layoutZend 框架布局中的图像
【发布时间】:2010-08-05 11:40:44
【问题描述】:

我在这里有点迷路,解决方案可能潜伏在我的眼皮底下,但我无法得到,如果有人可以提供帮助,请想到你们。

问题来了: 我有 Zend Framework 标准文件布局:

Project
  -application
     -controllers
     -views 
     -layouts
        -scripts
           -layouts.phtml
  -library
  -public
     -images
     -index.php

现在的问题是,我仅通过 images/logo.gif 等引用 layouts.phtml 中的图像,并且在控制器视图 /images/arrow.gif 中也是如此

如果请求很简单http://servername/project/controller就可以了

但如果请求更深,比如http://servername/project/controller/index/page/2

图像会自行损坏,他们显然无法获取路径,我注意到的是,如果我稍后请求,图像路径将是 http://servername/project/controller/index/page/2/images/logo.gif 不存在,图像在 public/images

我的理解是(我也用谷歌搜索了一下)框架知道默认的公共,并且总是将图像路由到公共/图像。但是,这是行不通的。我是否必须添加一些重写规则或其他内容?

有人可以帮忙吗?我将不胜感激!

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    有时你应该先问问坐在你旁边的人!

    解决办法如下:

    <?=$this->baseUrl('images/logo.gif')?>
    

    在进一步调查后编辑

    为了记录和帮助他人:如果您正确配置了 DocumentRoot,您可以像在非 Zend 框架环境中通常那样访问公共图像文件夹。我只在我的 httpdconf 中创建了一个虚拟目录,而如果您没有创建 VirtualHost 并且没有将 DocumentRoot 提供给它,而您的文件也不在默认的 htdocs 目录中,那么会出现这个问题。请参阅以下 URL 中的创建虚拟主机标题: http://framework.zend.com/manual/en/learning.quickstart.create-project.html 这样就可以解决问题了!

    【讨论】:

      【解决方案2】:

      只需在路径前添加一个斜线即可。 所以而不是

      <img src="images/logo.gif" />
      

      试试

      <img src="/images/logo.gif" />
      

      如果没有斜线,它会将路径附加到您发现的相对路径。 Hammad 解决方案也应该可以工作,因为它会生成正确的代码,但现在您知道为什么会出现问题了。

      【讨论】:

      • 有这个配置吗?因为我已经检查了您建议的方式,它不起作用,如果我要求 Firefox 仅“查看图像”,它会将我带到localhost/images/blah.gif,而我在本地主机中有一个项目文件夹,其中图像文件夹位于公共目录下.有什么想法吗?
      • @Hammad 我坚持你已经解决了你的问题?并且没有其他配置,然后在您的网站公共文件夹中拥有具有正确权限的 /images。如果它不起作用,则可能是您的 htaccess 或权限有问题,或者我没有看到明显的东西。
      • 是的,它有效,但正如您所建议的,如果 zend 应该自行获取图像文件夹,则更多的是一种解决方法,现在的问题是,我在 /library/forms/blah 中创建了一个 zend 表单/blah.php 并且我已经尝试给它所有可能的组合以获取图像文件夹(因为我正在尝试获取带有图像的按钮元素),但这不起作用。 baseUrl 也没有 zend 形式,有什么建议吗?
      • @Hammad。它与您的代码所在的位置无关。图像将始终相对于公用文件夹。您可能应该发布一个关于此的新问题,因为您接受了对您不起作用的自己的答案。
      猜你喜欢
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多