【发布时间】:2012-05-04 01:24:57
【问题描述】:
我是 Zend 框架的新手,如果这是一个基本问题,请原谅我,但我有时间,显示从数据库检索到的图像。
编辑:我基本上无法访问 /public/ 文件夹中的任何资源。我猜前端控制器正在重定向 <link> 标签和 <img> 标签内的 src 请求。每次我搜索时,我都会看到人们在访问 /public/ 文件夹之外的图像时遇到问题......但只要它们存储在 /public 文件夹下,它们似乎就可以了。我做错了什么?
我在部分视图中有以下代码:
<?php
$user = Zend_Layout::getMvcInstance()->getView()->user;
?>
<section class="one-fifth first sidebar_profile">
<div class="one-fifth first about_img"><img src="<?php if($user->picture){echo '/public/img/users/small_thumbs/'.$user->picture;}else{echo "#";} ?>" alt="name"/>
<p class="name"><?php if($user) {echo $user->username; } else { echo "Username";} ?></p>
转储$user 会得到以下信息:
object(Zend_Db_Table_Row)[70]
protected '_data' =>
array
'userID' => string '22' (length=2)
'username' => string 'test' (length=4)
'firstName' => string '' (length=0)
'lastName' => string '' (length=0)
'email' => string 'test@google.com' (length=18)
'password' => string '098f6bcd4621d373cade4e832627b4f6' (length=32)
'picture' => string '4fa3072fe09a5.jpg' (length=17)
'verified' => string '1' (length=1)
'confirm_key' => null
'admin' => null
它持续了很长一段时间,但关键是文件在那里。查看所呈现页面的源代码,有问题的行呈现为:
<img alt="name" src="/public/img/users/small_thumbs4fa3072fe09a5.jpg">
我应该使用某种视图助手来显示这个吗?我找了又找,没找到。
【问题讨论】:
-
您使用的是虚拟主机吗?通常,您的前端 url 中不会有 /
public;public将是虚拟主机定义的一部分。 -
是的,我是。 /public/ 文件夹设置为文档根目录。我已经尝试过使用/不使用 /public/ ,但它仍然无法正常工作。即使我给出了绝对定义,我也无法在网站的任何地方访问图像。 (或css,除非我使用
@import -
网络根目录下的标准
.htaccess将绕过实际存在的任何文件/目录的框架。如果在浏览器中输入http://yourhostname/img/users/small_thumbs4fa3072fe09a5.jpg,看不到图片?另一个想法:small_thumbs是一个文件夹吗?如果是这样,你就少了一个斜线;正确的网址是/img/users/small_thumbs/4fa3072fe09a5.jpg -
缺少的斜线只是一个错字,我修复了它但得到了类似的结果。我花了几个小时查看文档,最后更改了我的 .htaccess 文件,当我回到工作机器上时,将发布最终结果作为答案。文档说 .htaccess 文件不应将与 doc_root 位于同一文件夹中的文件重定向到前端控制器,但尽管有这样的保证,但出于某种原因,我的应用程序还是这样做了。
标签: zend-framework