PHP file_get_contents 个 HTML 个文件请求旧资源

PHP file_get_contents of HTML file requests old resources

我有一个特定的网页。这是文件结构:

index.php
script.js
style.css
edit
 |
 |--- index.php
 |
 |--- script.js

edit/index.php 使用包含 <script src='script.js'></script>file_get_contents('../index.php') 回显 index.php 的内容。 edit/script.js 包含 alert()。当我打开https://www.example.com/edit时,显示index.php的内容,但不执行edit/script.js里面的代码。为什么会发生这种情况,我该如何解决? (虽然 index.php 有扩展名 .php 但它不包含任何 PHP,只是 HTML)

问题是浏览器不知道 edit 实际上是 edit/index.php。它认为这是根目录中的文件,因此在解析 script.js 时它也在根目录中查找该文件。

您应该配置网络服务器,使其执行从 editedit/index.php 的重定向,而不是仅仅返回 edit/index.php 的内容。这样,所有相对 URL 都会被正确处理。如果您不想显示脚本名称,您可以重定向到 edit/——这足以让它知道这是一个目录而不是一个文件。