Frage

OK, so I've run into an issue with nested php includes, and I want to know what is a good compromise of best practices and ease-of-use.

Here's my website structure:

root
  - index.php
  -/include
    - header.php
    - footer.php
  -/articles
    -article-1.php
  -/css
    -style.css

So here's the issue: Inside index.php I have an include "include/header.php". Inside header.php I have many relative paths such as <link href="css/style.css>. And inside article-1.php I also have include "include/header.php".

So the index file works. But the article-1 file can't see the css file because the relative link is now looking for /articles/css/style.css. I found out about the <base> tag, and have set that in header.php, and it's fixed all my problems except for anchor links (which I can work around with javascript if I HAVE to), but I'm still concerned about what best practice is. How should I go about doing this correctly without having to prepend every single relative link with a huge php line and also without having to use a javascript hack to make anchor links work?

Thanks!

War es hilfreich?

Lösung

I ended up using a <base> tag in the header, and then wherever I needed anchor links I used php like so: <a href="http://<?php echo $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI];?>#">

This makes the link go to the current page with a # added to the end, so it's the same as using <a href="#">

Let me know if you think I could have done this a better way! Thanks!

Andere Tipps

I think you can go up a directory with "../", current directory is "./"

So from root/articles/article-1.php, you would get to your stylesheet with ../css/style.css

<link href="../css/style.css">

In my opinion the best practice for this sitution is to go back to the root directory, provided that your project is in the root of your server/webspace.

Use a "/" in the beginning of the links, which is an absolute path.

Example: /css/style.css IS ACTUALLY root->css folder->style.css file

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top