我的本地LAMP环境正在使用AMPPS for apache。我的项目目录结构如下:
public/
index.php
css/
js/
img/
layout/
banners/
banner1.jpg
banner2.jpg
banner3.jpg
src/
config.php
library/
templates/
header.php
footer.php
nav.php
在 header.php 里面我有以下代码:
<ul class="slideshow">
<?php
$images = glob( $GLOBALS["config"]["paths"]["images"]["layout"] . "/banners/*.jpg" );
foreach($images as $image){
$out = "<li><img alt='banner' width=1280 height=320 src='".$image."'/>ASC Online</li>";
ChromePHP::log($out);
echo $out;
}
?>
</ul>
(全局$ config在src/config.php
文件中设置。)
当代码被回显时,它似乎是正确的:
<li><img alt='banner' width=1280 height=320 src='/Users/Tom/Web/dev/asconline.local/public/img/layout/banners/banner1.jpg'/>ASC Online</li>
<li><img alt='banner' width=1280 height=320 src='/Users/Tom/Web/dev/asconline.local/public/img/layout/banners/banner2.jpg'/>ASC Online</li>
<li><img alt='banner' width=1280 height=320 src='/Users/Tom/Web/dev/asconline.local/public/img/layout/banners/banner3.jpg'/>ASC Online</li>
如果我转到上面输出中指示的URL,图像文件就在那里......目录是正确的。
但是,在浏览器中,当浏览器尝试检索文件时,我收到 404:找不到文件。
这不是权限,因为我能够在项目目录中获取其他文件/图像。
有什么想法吗?
答案 0 :(得分:2)
您的glob
正在返回相对于驱动器根目录的路径。通过浏览器访问时,它相对于文档根目录完成,该文件很可能是public_html
文件夹。
您需要执行以下操作:
"... src='".substr($image,strlen($_SERVER['DOCUMENT_ROOT']))."' ..."