Ошибка пути к файлу при включении файла из других файлов в различных каталогах

Структура файла:

app/
- index.php
- core -> header.php, setup.php
- img -> ...
- lib -> css->stylesheet.css, js->script.js

у меня есть header.php файл, содержащий ссылку на файлы CSS и JS.
Это выглядит так:

<link rel="stylesheet" href="lib/css/stylesheet.css"/>
<script src="lib/js/script.js" type="text/javascript"></script>

Мне нужно включить header.php в двух других файлах: index.php и setup.php.

Файл прекрасно загружается в index.php поскольку app/lib/css/stylesheet.css а также app/lib/js/script.js существовать.
В случае загрузки из setup.php, он будет искать файл внутри каталога 'app/core/lib/css ... and js ... ',

Я попытался решить эту проблему, используя абсолютный путь, используя что-то вроде:

$path = realpath($_SERVER['DOCUMENT_ROOT']);

и добавив его в теги ссылки и скрипта в header.php
Проблема в том, что Windows не может получить доступ к локальным ресурсам.

Как мне решить эту проблему? Заранее спасибо.

0

Решение

Создайте файл config.php с настройками, такими как

<?php
$webPath = 'http://example.com/';
$jsPath = $webpath . 'lib/js/';
$cssPath = $webPath . 'lib/css/';

Затем включите config.php во все ваши точки входа. Точка входа здесь — index.php и setup.php

Как только вы это сделаете, header.php должен иметь простой код:

<link rel="stylesheet" href="<?= $cssPath ?>stylesheet.css"/>
<script src="<?= $jsPath ?>script.js" type="text/javascript"></script>
1

Другие решения

Вы должны включить ваши файлы, будь то файлы .js или .css, используя протокол http: //.
Вы можете определить константу в вашем конфигурационном файле, как показано ниже:

define('SITE','http://'.$_SERVER['HTTP_HOST'].'/<project_name>/');

Теперь вы можете использовать константу SITE в header.php, как показано ниже:

<link rel="stylesheet" href="<?php echo SITE;?>lib/css/stylesheet.css"/>
<script src="<?php echo SITE;?>lib/js/script.js" type="text/javascript"></script>

Надеюсь, это поможет вам. 🙂

1

По вопросам рекламы [email protected]