【发布时间】:2019-01-21 12:26:26
【问题描述】:
首先,请不要通过链接php read images outside localhost on another disk 将我的问题标记为问题的重复,因为在阅读我的问题到最后你会注意到我的静态文件路径在我的index.php 文件中应该是动态的
我在 Windows 上使用最简单的 PHP 服务器,通过带有 CMD 命令的 .VBS 文件启动它
php -S localhost:80
我的 .VBS 文件和index.php 位于硬盘 C 内的文件夹中,应该位于那里。因此,当我启动服务器时,它使用磁盘 C 上的文件夹作为根 localhost 文件夹。但是静态文件现在并且应该位于硬盘 D 上。
我可以使用 index.php 中的以下 PHP 代码将静态 HTML 文件成功加载到浏览器
<?php
$path = $_SERVER['REQUEST_URI'];
if($path == '/') {
$path = 'index';
}
$pathToStaticWebsite = 'D:/static_websites/website1/';
$page = file_get_contents($pathToStaticWebsite.$path.'.html');
echo $page;
?>
但是 HTML 文件具有 CSS 和图像的相对路径,例如 src="images/...",并且它们没有被加载。我已经尝试添加该行
$page = str_replace('images/','file:///'.$pathToStaticWebsite.'images/',$page);
在echoindex.php 中的页面之前,但它不起作用,正如我所见,因为服务器不处理此类本地路径
如何解决问题?
ps。我的意思是不使用.htaccess 和index.php 在website1 文件夹内的路径并记住index.php 作为主应用程序文件可能会将我们从website1 切换到website2,所以静态网站的路径文件夹在index.php中是动态的
【问题讨论】:
-
处理这个问题的真正方法是在你的机器上本地设置一个实际的网络服务器。最终,当您进行部署时,您必须拥有正确的网站路径。