The problem is in the way PHP
include() works; it literally includes the code from
index.php, without updating any relative links. As such, you
index.php is looking for the CSS file in
../css/index.css. And while your
head.php does indeed need to go up one directory before looking in the CSS folder, your
index.php file does not.
To resolve this, you have a number of options:
- You can update the relative path to
css/index.css to work from your
- You can use the root-relative path
/css/index.css to reference the CSS file from any folder.
- You can use the absolute path
https://yourwebsite.com/css/index.css to reference the CSS file from not only your website, but any other website. This further eliminates confusion, but will cause issues if you change the domain.
Personally I would recommend the root-relative path, as it makes things less confusing when using things like includes and partials.