问题
Here is my root folder :
index.php
stylesheets(folder) --->main.css
includes(folder) --->header.php
folder1 (folder) --->page1.php
Here is link part of "header.php" (from includes folder) :
<link href="stylesheets/main.css" rel="stylesheet" type="text/css" />
Here is a part of index.php :
<?php include "includes/header.php"; ?>
Here is a part of page1.php (from folder1):
<?php include "../includes/header.php"; ?>
Problem is, when I open index.php everything is normal. As for /folder1/page1.php, it doesn't see styles but see content of header.php. That is to say, it doesn't bring main.css. Most probably, because of link href="stylesheets/main.css" rel="stylesheet" type="text/css" Any help?
回答1:
Because you access files from multiple levels, you should use an absolute path.
So either href="http://domain.com/stylesheets/main.css" or href="/stylesheets/main.css"
But this only works (the 2nd one, and the one I recommend) when you have it on top level on your domain.
回答2:
A robust solution is to use absolute links. A convenient way to do this is using a central configuration file. For instance, create a file config.php, containing
<?php
define('SITE_ROOT', 'http://www.yourdomain.com/');
?>
And include this file in each PHP file (require_once('config.php');). Then you can write
<link href="<?php echo SITE_ROOT; ?>stylesheets/main.css" rel="stylesheet" type="text/css" />
Which will always resolve to the URL you mean to reference. When your site's domain changes, a central configuration will allow you to easily change it.
回答3:
I'm confused about your folder structure, but I understood correctly.
Try
href="../stylesheets/main.css"
回答4:
Sometimes the simple way ist the best way: use an absolute path!
来源:https://stackoverflow.com/questions/10420888/how-can-html-link-href-call-same-file-from-different-folders