繁体   English   中英

php 路线 - 我如何显示良好的图像路径

[英]php route - how I can display good image path

我正在使用 PHP 并尝试在视图中显示图像。 这是显示图像的代码。

if ($annonce->avatar)
            $res .= '<a href="../src/'.$annonce->avatar.'" alt="avatar" class="img-thumbnail">Lien</a>';

src 文件夹中,我有

  • 头像文件夹

图片.png ^

  • controller 文件夹
  • 实体文件夹

^ 我所在的实际文件以及执行代码的位置,但路径不正确 请问如何显示它?


在模板文件夹中,我有:

  1. 公告

^ index.php 调用实体函数的文件

  1. 偏爱

编辑:即使带有 img 标签,也不会显示图像

$res .= '<img src="'.dirname(__DIR__).'\avatar\\'.$annonce->avatar.'" alt="avatar">Lien</img>';

要显示图像,您不应使用<a href="SRC_IMG"></a>标签,而应使用<img src="IMG_SRC">标签...

您可以将 img 标签放在锚 <a href 标签下

我会按照我的理解回答你的问题,因为我错过了一些关于你的系统的重要信息。 但是我认为您在理解 php 和浏览器中的路由时遇到了一些问题。

文件夹结构:

root/website_x/
- src/
  - avatar/
    - image.png
  - controller/
  - entity/
  - ...
- template/
  - annonce/
     - index.php
     - ...
  - home/
  - favoris/
  - ...
- index.php
- index.html
- ...

我猜你有这个 url: localhost/website_x/index.php

如果你有一个真实的服务器和一个域,你的路径应该是: www.website-x.com

事实是, www.website-x.com指向root/website_x/index.php

  1. 浏览器处理与服务器不同的路径(php)
  2. 不直接使用模板/annonce/index.php。 它是通过网站的魔法包含的。

在浏览器中使用文件时,您必须像浏览器一样思考。 如果您的浏览器打开 url www.website-x.com ,那么根目录就是服务器告诉他它在哪里的位置。 在我们的示例中,它是www.website-x.com/(index.php) 浏览器不知道服务器的文件夹结构。

所以事实是,如果你放置一个<img src="../src/avatar/image.png">浏览器找不到它,因为它看起来在那里www.website-x.com/../src/avatar/image.png大部分是错误的。 这就是为什么我告诉你通过 url 在浏览器中打开图像的原因。 但是www.website-x.com/src/avatar/image.png应该在浏览器中显示您的图像。 或者 localhost/website_x/src/avatar/image.png 如果你使用 xampp。

你可以用 php 告诉浏览器正确的路径:

您的 $annonce->avatar 变量应该包含从网站根目录开始的路径。 localhost/website_x/src/avatar/image.pngwww.website-x.com/src/avatar/image.png 路径src/avatar/image.png甚至/src/avatar/image.png可能(并且可能会)导致其他问题。

其他可能阻止浏览器显示图像的事情,即使路径正确:
  • htaccess 禁止这样做
  • 网络服务器无权访问图像
  • 图像文件已损坏

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM