首先,请不要通过链接php read images outside localhost on another disk将我的问题标记为该问题的重复项,因为读完我的问题后,您会发现我的静态文件路径在我的{{ 1}}文件
我使用Windows上最简单的PHP服务器,并使用CMD命令通过.VBS文件启动它。
index.php
我的.VBS文件和php -S localhost:80
位于硬盘C内的文件夹中,应位于该文件夹中。因此,当我启动服务器时,它使用磁盘C上的文件夹作为本地localhost文件夹。但是静态文件位于并且应该位于硬盘D上。
我可以使用index.php中的以下PHP代码将静态HTML文件成功加载到浏览器中
index.php
但是HTML文件具有指向CSS和<?php
$path = $_SERVER['REQUEST_URI'];
if($path == '/') {
$path = 'index';
}
$pathToStaticWebsite = 'D:/static_websites/website1/';
$page = file_get_contents($pathToStaticWebsite.$path.'.html');
echo $page;
?>
之类的图像的相对路径,并且它们没有被加载。我尝试添加行
src="images/..."
$page = str_replace('images/','file:///'.$pathToStaticWebsite.'images/',$page);
之前echo
中的页面,但是它不起作用,因为服务器无法处理此类本地路径,据我所见
如何解决问题?
ps。我的意思是在index.php
文件夹中不使用.htaccess
到index.php
的路径的情况下,请记住,website1
作为主应用程序文件可能会使我们从index.php
转到website1
,因此静态网站文件夹的路径在website2
中是动态的
答案 0 :(得分:0)
要拥有一个像您描述的系统,您将必须设置一个网络服务器-php -S
旨在帮助应用程序开发(所有文件都存储在给定文件夹中)
也无法从http(http://和file://)请求本地文件
答案 1 :(得分:0)
根据我对您的问题的理解 希望对您有帮助,我可以使用它来找到项目目录并获取系统DIRECTORY_SEPARATOR 因为在Windows操作系统中,DIRECTORY_SEPARATOR是\ 在Mac OS和UNIX OS中,DIRECTORY_SEPARATOR是/
<?php
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(__FILE__));
?>