如果本地主机文件夹位于另一个磁盘上,则无法加载 CSS 和图像



首先,请不要通过链接php在另一个磁盘上的localhost外部读取图像将我的问题标记为问题的重复,因为在阅读完我的问题后,您会注意到我的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);

echo处理index.php中的页面之前,但它不起作用,正如我所看到的,因为服务器不处理这种本地路径

如何解决问题?

ps。我的意思是,如果不在website1文件夹中使用.htaccessindex.php的路径,并记住index.php作为主应用程序文件可能会将我们从website1切换到website2,因此静态网站文件夹的路径在index.php中是动态的

要有一个像您描述的系统,您必须设置一个Web服务器-php -S旨在帮助应用程序开发(所有文件都存储在给定的文件夹中)

也不可能从http(http://和file://)请求本地文件

根据您的问题我的理解我希望这能帮助你我用它来定位项目目录并获得系统目录_分离器因为在Windows操作系统中DIRECTORY_SEPARATOR是\在Mac操作系统和UNIX操作系统中,DIRECTORY_SEPARATOR是/

<?php
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(__FILE__));
?>

相关内容

  • 没有找到相关文章

最新更新