包含的PHP文件路径

包含的PHP文件路径,php,include-path,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> <

以下是我的项目当前的设置方式:

-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>
<?php
include(__DIR__.'/includes/head.php');
?>

我的网站
index.php

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/index.css">
<title> My Website </title>
</head>
<body>
<?php
include(__DIR__.'/includes/head.php');
?>


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

问题在于PHP的工作方式;它从字面上包括
head.php
index.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之类的东西时,它可以减少混淆。

问题在于PHP的工作方式;它从字面上包括
head.php
index.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时,它可以减少混淆。

注意,
href
是相对于当前浏览器url路径的,而php的
include
是相对于服务器路径的。请注意,
href
相对于当前浏览器url路径,而php的
include
相对于服务器路径。根相对路径不起作用,但相对路径起作用。谢谢根相对链接取决于被认为是网站根的内容。通常它是核心网站本身,尽管它可以通过标签进行修改。我很高兴,至少相对路径对您有效:)根相对路径不起作用,但相对路径起作用。谢谢根相对链接取决于被认为是网站根的内容。通常它是核心网站本身,尽管它可以通过标签进行修改。但我很高兴,至少相对路径对您有效:)