html与php服务器的相对路径

时间:2016-07-03 15:14:18

标签: 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>
<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。 localhost:8000/app/scripts。当我在没有服务器或使用nginx的情况下直接打开文件时,可以正确找到这些文件。所以php服务器改变了一些东西。这里发生了什么?

我在Chrome和Firefox中尝试过它。两种浏览器都有相同的行为当我使用localhost/appnginx)打开网站时,一切都按预期工作。当我使用localhost:8000/appphp -S localhost:8000)打开网站时,无法找到脚本和样式。它是具有相同文件根目录的相同文件。来自哪里的不同行为?

2 个答案:

答案 0 :(得分:2)

检查PHP: Built-in web server上的官方文档后,它明确指出:

  

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

答案 1 :(得分:0)

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

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