我使用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/app
(nginx
)打开网站时,一切都按预期工作。当我使用localhost:8000/app
(php -S localhost:8000
)打开网站时,无法找到脚本和样式。它是具有相同文件根目录的相同文件。来自哪里的不同行为?
答案 0 :(得分:2)
检查PHP: Built-in web server上的官方文档后,它明确指出:
URI请求从当前PHP工作目录提供 已启动,除非使用-t选项指定显式 文件根。
答案 1 :(得分:0)
这是 PHP 内置 Web 服务器的一个令人讨厌的行为。幸运的是,有一个解决方法:只需启动您的应用程序,在 URI 中包含 index.html
。打开浏览器并转到
http://localhost:8000/app/index.html