1

我已经创建了如下所示的头文件。

<style type="text/css" >
.menu{
    width: 100%;
    /*background-color: #333; */}
.menu ul{
    margin: 0; padding: 0;
    float: left;}

.menu ul li{
    display: inline;}

.menu ul li a{
    float: left; text-decoration: none;
    color: #000;
    padding: 10.5px 11px;
    /* background-color: #333; */}
    /* 
.menu ul li a:visited{
    color: white;}*/

.menu ul li a:hover, .menu ul li .current{
    color: #fff;
    background-color:#0b75b2;}

}
</style>
<div class="menu" style="width:430px; height:43px; margin-left:420px; margin-right:auto;">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About us</a></li>
<li><a href="contact.php">Contact us</a></li>
<li><a href="image-gallery/index.php">Image Gallery</a></li>
<li><a href="articles/index.php">Articles </a></li>
</ul>
</div>

所以我有尊重目录,比如图片库、文章

文件路径 :

www/websitename/index.php

我将 header.php 包含到主 index.php,它正确链接但是当我包含图像库的索引文件时,它没有正确链接,

www/websitename/image-gallery/index.php
www/websitename/image-gallery/index.php
4

1 回答 1

0

有多种解决方案,但最简单的实现方法是在 config.php 文件中定义。除其他外,定义将指定根文件和根路径

配置文件

define('ROOT_URL', 'http://www.example.com/');
define('ROOT_PATH', '/var/www/html');

然后,在 index.php 中,您将拥有

include('config.php');
include('header.php');

或者

include('../config.php');
include('../header.php');

然后,在 header.php

<li><a href="<?php echo ROOT_URL; ?>index.php">Home</a></li> 

这个主题有很多变体,上面是最简单的,但这里有其他的。

为什么是这种方法?因为在 config.php 你可以使用

if ($_SERVER['HTTP_HOST'] == 'staging.example.com') { // 一组定义 } else { // 假设直播 - 用户另一组定义 }

并从 dev/staging/live 复制文件而不覆盖。


与 hte 包含中的“../”相反,在每个文件中创建一个变量“root_file”作为“./”或“../”。然后包括($root_file . 'header.php'); 在每个脚本中执行此操作,您也可以用于链接。


如果指定 hte 完整 URL,您可能希望排除“http://”部分并添加您正在使用的方案,如果您在 https 和 http 之间滑动。在代码中添加 URL(或在构建链接的函数中)


您可能希望将详细信息存储在数据库中(在这种情况下,您可能会将数据库连接凭据存储在 config instread


最后,您可以使用 $_SERVER[''] (http://php.net/manual/en/reserved.variables.server.php) 变量,或__FILE__( __ DIR__http://php.net/manual/en/language ) .constants.predefined.php) 来确定你在哪里。请小心,因为 REQUEST_URI 可能无法准确反映脚本的位置(如果使用 .htaccess 进行重写规则),并且如果您使用符号链接,则 SCRIPT_FILENAME/ __FILE__/也可能存在。__DIR__但是如果你知道你的服务器配置,这是处理“我在哪里?”的一种非常便携的方式。

所以,有很多选择。从简单开始,随着您的需求不断变化,逐步建立起来。

于 2012-05-20T13:28:30.143 回答