Путь к файлу PHP с включением - PullRequest
0 голосов
/ 07 мая 2018

Вот как настроен мой проект:

-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 голосов
/ 07 мая 2018

Проблема в том, как работает PHP include(); буквально включает код из head.php в index.php, без обновления любых относительных ссылок. Таким образом, вы index.php ищете файл CSS в ../css/index.css. И хотя вашему head.php действительно нужно перейти на один каталог выше, чем искать в папке CSS, ваш файл index.php этого не делает.

Чтобы решить эту проблему, у вас есть несколько вариантов:

  • Вы можете обновить относительный путь до css/index.css для работы из файла index.php.
  • Вы можете использовать относительный корень путь /css/index.css для ссылки на файл CSS из любой папки.
  • Вы можете использовать абсолютный путь https://yourwebsite.com/css/index.css для ссылки на файл CSS не только с вашего сайта, но и с любого другого сайта. Это также устраняет путаницу, но может вызвать проблемы при смене домена.

Лично я бы порекомендовал относительный путь root, так как он делает вещи менее запутанными при использовании таких вещей, как include и partials.

...