这是我的基本实践网站的结构
/opt
/lampp
/htdocs
/web
/img
logo.png
/tests
HomeView_test.php
/view
HomeView.class.php
index.php
我最初的问题是我正在使用自动加载和运行来自 index.php 的 HomeView.class.php 和来自 HomeView_test.php 的 HomeView.class.php 如果我只硬编码来自一。因此,例如,如果我硬编码从 index.php 调用时工作的路径,那么当从 HomeView_test.php 调用时它也不会工作
这是 HomeView.class.php 中的内容
<?php
class HomeView {
public static function show() {
$pathDir = dirname(__FILE__);
$fileName = $pathDir . DIRECTORY_SEPARATOR . "../img/logo.png";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Website</title>
</head>
<body>
<header>
<img src="<?php echo $fileName;?>" alt="Logo" width="150" height="100"/>
<nav>
<ul>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Contact Us</a>
</li>
</ul>
</nav>
</header>
<footer>
<p>
© 2015 Peeps, Inc. All Rights Reserved.
</p>
</footer>
</body>
</html>
<?php
}
}
?>
我认为 src 中路径的 php echo 可以工作,但它仍然没有加载 Logo 图像。
img/logo.png 中的硬编码仅在 index.php 中调用 HomeView.class.php 时有效,但当我从 HomeView_test.php 中调用它时,它需要 ../img/logo.png 来显示 Logo
有人知道我做错了什么吗?也许 img src 和 php 语法不对,因为我以前从未尝试过将 php 与 img src 结合使用。
最佳答案
在这种情况下,当您想要显示网页中的图像时,无论您使用何种后端语言,都需要提供媒体的公共(public)服务器路径。
所以当你有这个声明时:
<img src="<?php echo $fileName;?>" alt="Logo" width="150" height="100"/>
当以 HTML 格式输出时,变量 $filename
应该类似于 /img/logo.png
。
您的目标是提供 url 的公共(public) Web 位置,而不是服务器位置。
关于php - 使用 dirname 和 img src 在 apache 网络服务器上显示 Logo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32826821/