The problem is in the way PHP include()
works; it literally includes the code from head.php
into 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 index.php
file.
- 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.