【发布时间】:2014-10-01 23:40:02
【问题描述】:
更新 1: 要清楚了解正在发生的事情,您可以download a snippet of the script from here.
我正在一个新网站上工作,该网站在所有 PHP 页面中都有相同的 header、footer。
在标题中,我引用了网站中的其他常见文件,例如 .css、.js、functions、classes、db connection 等。
例如,default.css 在/common/stylesheets/ 中
而我的 header.php 和 footer.php 在/common/html/ 文件夹中
所以我的 header.php 文件是这样的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>The Header</title>
<link rel="stylesheet" href="common/stylesheets/default.css">
</head>
<body>
在我的网站index.php 中,我包含了标题<?php include('common/html/header.php'); ?>,这工作正常......但是当我在其他目录或子目录中的其他php页面中包含标题时出现问题,例如/pages/admin/dashboard.php,一切都搞砸了,该页面不再链接到 default.css 文件。
所以,我正在寻找的是一种方法或逻辑,我可以在其中引用每个 PHP 页面中的这些公共文件和文件夹,无论其位置如何;例如站点根目录、站点根目录中的目录或子目录……等等……
这是我网站根目录的图片
非常感谢您的帮助...
附注我尝试在config.inc.php 文件中使用一些超全局变量(例如$_SERVER[''])来定义路径,然后将该文件包含在header.php 中。但我不知道哪个会动态地继续引用那些公共文件夹和文件,无论 PHP 页面在哪里。
更新 1: 要清楚了解正在发生的事情,您可以download a snippet of the script from here.
【问题讨论】:
-
如果我没记错的话,
common/stylesheets/default.css在当前位置寻找一个名为 common 的文件夹,它应该是/common/stylesheets/default.css,它会进入根目录并获取 common 文件夹 -
@Class 当使用
/common/stylesheets/defaults.css时页面没有链接到default.css文件,当我查看页面源时,链接是localhost/common/stylesheets/defaults.css,所以你可以看到sitename不见了。另一方面,当使用common/stylesheets/default.css时,它可以工作并且页面源将链接显示为localhost/sitename/common/stylesheets/default.css -
@Class 它包含 php 内容,但我删除了它们,因为它们与问题无关并保持代码干净整洁
-
defaults!==default您可能需要在每个网址/链接中添加sitename,例如/sitename/common… -
@Class,
defaults是一个错字,抱歉。仅供参考,我在帖子中添加了一个下载链接到脚本的 sn-p。
标签: php html content-management-system