0

我在 Ubuntu 的 zend 框架 2 教程项目中有以下文件夹结构:

/zf2tutorial
    /module
        /Album
            /view
                /album
                    /album
                        myImage.png
                        index.phtml

在我的 index.phtml 代码中,我有这样一行:

<img alt='SMALLIMG' src='myImage.png'/>

这不起作用。

如果我将 myImage.png 更改为http://www.someurlhere.com这可以正常工作。

如何改为加载 myImage.png?我试着给它直接的 URL:

/home/myUsername/NetBeansProjects/zf2tutorial/module/Album/view/album/album/myImage.png

我也尝试过执行以下操作:

../myImage.png

但这些都不起作用。

另请注意,它必须是错误的路径(我一定是在这里做错了),因为出现了损坏的图像图标......表明这里存在链接问题.. 直接 URL 是从属性部分复制粘贴的图像本身..

4

6 回答 6

3

这不是图像或路径的问题。你正在尝试做一件不可能的事情。

您当然在您的虚拟主机配置中定义了 documentRoot 是您的公共目录。

这意味着您的 Web 服务器将允许访问此公共目录中的资源。

您必须从该公共路径(css、图像..)中放置您的资源,或者如果您允许以下符号链接,您可以定义一个符号链接。

希望这可以帮助。

于 2012-12-26T06:46:37.967 回答
3
<img alt=""  src="img/2 header960.png" align="center" >
于 2013-01-31T11:41:08.863 回答
2

您感到困惑的根本问题是视图与公共内容之间的区别。

视图文件本质上是 HTML模板,您可以在运行时向其中注入某些值。您的目录结构正确地将这些内容放置views在模块内的目录中。这些模板文件本身永远不会暴露给最终用户。它们仅由应用程序用于生成最终发送到浏览器的完全填充的 HTML 块。

相比之下,静态资产(如图像、javascript、外部样式表等)由网络服务器直接提供给您的访问者。因此,它们需要位于已告知网络服务器公开服务于访问者的目录中。

简单的做法是简单地将包含这些静态资产的目录移出模块并进入应用程序的public文件夹。

但这在某种意义上是不可取的,因为您可能合理地希望模块成为一个自包含的实体:它可以包含自己的路由、自己的控制器/动作,特别是它自己的静态资产。

那么,如何让网络服务器深入到模块中并将其中的一些内容视为“公共”?

答案是使用“资产管理器”,一个将某些模块内容链接到应用程序public目录的组件。通常这意味着:

  1. 激活资产管理器模块
  2. 在你的模块中创建一个public目录
  3. 将那些静态资产放在那里
  4. 通知资产管理器哪些公共模块目录进入公共应用目录。

查看Roberto Wesley Overdijk的AssetManager 模块和其他使用说明

[作为旁注,欢迎来到 Web 开发的世界。ZF2 是一个很棒的框架,但对于初学者来说它并不是最简单的事情。它为以“好的方式”做事提供了很大的灵活性,但一开始它肯定会令人费解。尽量不要气馁。;-)]

于 2012-12-26T07:43:29.243 回答
0
<div id='small_image'>
    <a href='/feeds/posts/default' title='smallimg'>
        <img alt='SMALLIMG' src='c:/home/myUsername/NetBeansProjects/zf2tutorial/module/Album/view/album/album/myImage.png'/>
    </a>
</div>
于 2012-12-26T06:12:20.240 回答
0

原因可能是图像扩展名(.png)

请检查您的确切扩展名,是用小写还是大写?

像图像名称一样更新您的图像链接。

例如。

myImage.pngmyImage.PNG

于 2012-12-26T06:30:42.003 回答
0

尝试在您的目录中的某个位置查找一个 .htaccess 文件,很可能是在模块文件夹中。该文件阻止了您尝试链接的图像的访问。(我的基础是我在 yii 中的应用程序,它甚至无法显示图像如果路径正确)

你可以在你的主目录中创建一个图像文件夹:例如 /zf2tutorial/images 并将所有图像放在那里调用它:src="/images/myImage.png"..

或者

找到我正在谈论的 htaccess,更改限制(或删除它:|),您可以使用此路径:src="/module/Album/view/album/album/myImage.png"..

于 2012-12-26T06:25:45.040 回答