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

时间:2019-01-21 12:26:27

标签: php localhost

首先,请不要通过链接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文件夹中不使用.htaccessindex.php的路径的情况下,请记住,website1作为主应用程序文件可能会使我们从index.php转到website1,因此静态网站文件夹的路径在website2中是动态的

2 个答案:

答案 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__));
?>