$ _ SERVER [ 'DOCUMENT_ROOT']路径HTML HREF不工作

问题描述 投票:-1回答:2

我试过几种方式呼应了绝对路径在href属性,但没有奏效。下面是一个简单的介绍我所谈论的。

我已经切头标记成head.php文件。我必须使用相同的头文件中的其他页面。由于文档根水平,为我所用相对路径,我没有得到短期图标。所以我决定在面向对象的方式使用绝对路径。

class Config {

    public static $url = null;
    public static $ext = null;

    public function __construct()
    {
        self::$url = $_SERVER['DOCUMENT_ROOT'];
        self::$ext = '/bcc-wd-batch1/imran17507/php/ecommerce/';
    }
}

然后在head.php

<?php 
    include_once($_SERVER['DOCUMENT_ROOT'] . '/bcc-wd-batch1/imran17507/php/ecommerce/vendor/autoload.php');
    use Site\Utility\Config;

    $config = new Config();

    $url = "file:///".Config::$url.Config::$ext;

    //Tried $url = Config::$url.Config::$ext; too
    //echo $url;

    ?>

<--This is where I wan't to make the changes.-->

    <link rel="apple-touch-icon" sizes="180x180" href="../../../medias/favicon/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="../../../medias/favicon/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="../../../medias/favicon/favicon-16x16.png">
    <link rel="manifest" href="../../../medias/favicon/site.webmanifest">
    <link rel="mask-icon" href="../../../medias/favicon/safari-pinned-tab.svg" color="#5bbad5">

而我在链接的标签试图变化:

1.

<?php
echo '<link rel="apple-touch-icon" sizes="180x180" href="'.$url.'medias/favicon/apple-touch-icon.png">';
echo '<link rel="icon" type="image/png" sizes="32x32" href="'.$url.'medias/favicon/favicon-32x32.png">';
echo '<link rel="icon" type="image/png" sizes="16x16" href="'.$url.'medias/favicon/favicon-16x16.png">';
echo '<link rel="manifest" href="'.$url.'medias/favicon/site.webmanifest">';
echo '<link rel="mask-icon" href="'.$url.'medias/favicon/safari-pinned-tab.svg" color="#5bbad5">';
echo '<meta name="msapplication-TileColor" content="#da532c">';
echo '<meta name="theme-color" content="#ffffff">';
?>

2.

<link rel="apple-touch-icon" sizes="180x180" href="<?=$url;?>medias/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="<?=$url;?>medias/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="<?=$url;?>medias/favicon/favicon-16x16.png">
<link rel="manifest" href="<?=$url;?>medias/favicon/site.webmanifest">
<link rel="mask-icon" href="<?=$url;?>medias/favicon/safari-pinned-tab.svg" color="#5bbad5">

现在我正式出来的方法。

php
2个回答
1
投票

所以,我想在href属性使用绝对路径。什么我不知道的是,在PHP的绝对路径和HTML绝对路径是不同的。

在PHP绝对路径

$_SERVER['DOCUMENT_ROOT'];

但在HTML绝对路径是:

href="/pages/index.php"

从字面上看,正斜杠(/)是回答我的问题,并尝试变化和寻找答案小时

同样,在HTML中的绝对路径,只是一个斜杠


0
投票

我不知道这是否会帮助解决你的情况,但头里面可以设置base标签,这意味着一切都将相对从那里被引用:

<head>
    <title></title>
    <base href="https://www.example.com/">
    <link.....>
    <script.....>
</head>
© www.soinside.com 2019 - 2024. All rights reserved.