2

这是我的根文件夹:

index.php
stylesheets(folder) --->main.css
includes(folder)    --->header.php
folder1  (folder)           --->page1.php

这是“header.php”的链接部分(来自包含文件夹):

<link href="stylesheets/main.css" rel="stylesheet" type="text/css" />

这是 index.php 的一部分:

<?php include "includes/header.php"; ?>

这是 page1.php 的一部分(来自 folder1):

<?php include "../includes/header.php"; ?>

问题是,当我打开 index.php 时一切正常。至于/folder1/page1.php,它看不到样式,而是看header.php 的内容。也就是说,它没有带main.css。很可能,因为有link href="stylesheets/main.css" rel="stylesheet" type="text/css"任何帮助吗?

4

4 回答 4

4

因为您从多个级别访问文件,所以您应该使用绝对路径。

所以要么href="http://domain.com/stylesheets/main.css"href="/stylesheets/main.css"

但这仅在您将其置于域的顶层时才有效(第二个,也是我推荐的一个)。

于 2012-05-02T20:12:24.197 回答
2

一个健壮的解决方案是使用绝对链接。一种方便的方法是使用中央配置文件。例如,创建一个文件config.php,包含

<?php

    define('SITE_ROOT', 'http://www.yourdomain.com/');

?>

并将此文件包含在每个 PHP 文件 ( require_once('config.php');) 中。然后你可以写

<link href="<?php echo SITE_ROOT; ?>stylesheets/main.css" rel="stylesheet" type="text/css" />

这将始终解析为您要引用的 URL。当您站点的域发生更改时,中央配置将允许您轻松更改它。

于 2012-05-02T20:19:57.917 回答
0

我对您的文件夹结构感到困惑,但我理解正确。

尝试

href="../stylesheets/main.css"
于 2012-05-02T20:10:39.553 回答
0

有时简单的方法是最好的方法:使用绝对路径!

于 2012-05-02T20:23:14.997 回答