Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php服务器实现html中的相对路径_Php_Html_Nginx_Php Socket - Fatal编程技术网

用php服务器实现html中的相对路径

用php服务器实现html中的相对路径,php,html,nginx,php-socket,Php,Html,Nginx,Php Socket,我使用php-S localhost:8000作为我的开发服务器。最后,我将使用nginx。但我有一个php服务器的问题 root | |---/app | |---/index.html |---/scripts | | | |---/main.css | |---/styles | |---/main.js 在我的app/index.html中,我有: <!DOCTYPE html>

我使用
php-S localhost:8000
作为我的开发服务器。最后,我将使用nginx。但我有一个php服务器的问题

root
|
|---/app
    |
    |---/index.html
    |---/scripts
    |   |
    |   |---/main.css
    |
    |---/styles
        |
        |---/main.js
在我的
app/index.html
中,我有:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="styles/main.css" type="text/css" />
</head>
<body>

  <script src="scripts/main.js"></script>
</body>
</html>

当我在浏览器中用
localhost:8000/app
打开页面时,无法找到css和javascript。浏览器正在查找
localhost:8000/styles
resp
localhost:8000/scripts
而不是
localhost:8000/app/styles
resp<代码>本地主机:8000/app/scripts。当我不使用服务器或使用nginx直接打开文件时,文件被正确找到。因此php服务器改变了一些东西。这是怎么回事


我在Chrome和Firefox上试用过。两种浏览器中的行为相同。当我用
localhost/app
nginx
)打开网站时,一切正常。当我用
localhost:8000/app
php-S localhost:8000
)打开网站时,找不到脚本和样式。它是具有相同文件根的相同文件。不同的行为从何而来?

在检查了上面的官方文件后,明确指出:

URI请求是从PHP所在的当前工作目录提供的 已启动,除非使用-t选项指定显式 文档根目录


这是PHP内置web服务器令人讨厌的行为。幸运的是,有一个解决方法:只需启动应用程序,在URI中包含
index.html
。打开浏览器并转到

http://localhost:8000/app/index.html

那你用的是什么?你是说它在没有服务器和nginx的情况下工作得非常好。但它不适用于“PHP服务器”。PHP不是服务器?我使用PHP进行开发。虽然速度很快,但效果不如预期。我想知道,我必须配置什么。php-S是一个用于开发的小型服务器听起来更像是浏览器显示的一种奇怪的行为……但这种奇怪的行为只有在php-S中才出现,我在Chrome和Firefox中尝试过。两种浏览器中的行为相同。当我用localhost/app(nginx)打开网站时,一切正常。当我用localhost:8000/app(php-S localhost:8000)打开网站时,找不到脚本和样式。它是具有相同文件根的相同文件。不同的行为从何而来?$path包含文件系统上文件的路径,而不是服务器上的url。这不管用。此外,不应解析index.html。这是一个前端html文件,没有php@ThomasSablik首先,请不要在你的问题中谈论
index.PHP
在我的app/index.PHP中,我有:
。如果您想获取服务器URL,则只需执行以下操作:
$server\u URL=“http://$\u server[http\u HOST]$\u server[REQUEST\u URI]”我想要一个使用php Web服务器的相对链接。它不起作用。我不想使用php代码
php-S localhost:8000
创建一个小型开发服务器。但此服务器的行为不正确。我想知道如何配置这个
/file
file
是指向文件的相对链接。但在php套接字中,它变成了一个绝对链接。“我不想要这个。@ThomasSablik那么我建议您创建一个只有以下代码的小php文件:
。它将显示控制php服务器行为的
php.ini
文件的位置。你可以在那里更改它的所有设置。我知道php.ini在哪里。我打开它看了看。但我没有发现这种奇怪行为的原因