PHP 包含的文件路径

PHP File Path With Include

我的项目目前是这样设置的:

-index.php
-css
--index.css
-includes
--head.php

head.php

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/index.css">
<title> My Website </title>
</head>
<body>

index.php

<?php
include(__DIR__.'/includes/head.php');
?>

问题是 index.css 不起作用。我现在不明白我做错了什么。任何帮助将不胜感激。谢谢

问题出在 PHP include() 的工作方式上;它字面上 包含 head.phpindex.php 的代码, 没有 更新任何相关链接。因此,您 index.php 正在 ../css/index.css 中查找 CSS 文件。虽然您的 head.php 确实需要在查看 CSS 文件夹之前进入一个目录,但您的 index.php 文件不需要。

要解决此问题,您有多种选择:

  • 您可以更新 css/index.css 的相对路径以从您的 index.php 文件中工作。
  • 您可以使用根目录相对路径 /css/index.css 任何 文件夹中引用 CSS 文件。
  • 您可以使用绝对路径 https://yourwebsite.com/css/index.css 从您的网站和任何其他网站引用 CSS 文件。这进一步消除了混淆,但如果您更改域,则会导致问题。

就我个人而言,我会推荐根目录相对路径,因为它在使用 include 和 partials 之类的东西时会减少混乱。