包含PHP文件路径

时间:2018-05-06 22:28:59

标签: php include-path

这就是我的项目目前的设置方式:

-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不起作用。在这一点上,我看不出我做错了什么。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

问题在于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文件,还可以引用任何其他网站。这进一步消除了混淆,但如果您更改域,则会导致问题。

我个人会推荐根相对路径,因为它在使用包含和部分内容时会减少混乱。