PHP определить () функцию как URL

1

Я разрабатываю сайт для своей работы в школе. Я использую XAMPP v3.2.1. на локальный сайт.

Моя папка сайта настроена так же, как в папке htdocs:

  • ibnm
    • CSS
    • JS
    • IMG
    • ...
    • сайт
      • около
      • Мидия
      • ...
      • includes.php
      • index.php (ГЛАВНАЯ СТРАНИЦА)

Моя проблема начинается здесь: на index.php я в том числе includes.php, что простой файл с определением() для папок моего сайта, поэтому я могу напечатать постоянен на HTML - тегах сайта, как URL (так же, как ниже)

    //includes.php
    <?php
       define("css", "localhost/ibnm/css");
    ?>

    //index.php
    <?php
       include_once("includes.php");
    ?>

    <link href="<?= css; ?>/bootstrap.css" rel="stylesheet">

Но когда я это делаю, CSS не работает. Когда я вижу тег <a> с ранее определенным URL на странице, он выглядит так:

localhost/ibnm/site/localhost/ibnm/css

вместо

локальный /ibnm/CSS

Это confunsing, потому что если тег <a> не имеет никакого значения (href=""), он выдает localhost/ibnm/site/.

Что может быть неправильным? XAMPP или кодирование?

Теги:
url
xampp
localhost

3 ответа

1
Лучший ответ

Это связано с тем, что браузер считает, что локальный хост - это папка, а затем сделать это на текущем пути, чтобы исправить это просто добавить http:// перед локальным хостом

define("css", "http://localhost/ibnm/css");
  • 0
    Большое спасибо. Простой "http: //" сделал работу.
2

Любой URL-адрес не начинается с http, тогда браузер будет считать, что его относительный путь будет добавлен к вашему текущему пути, вот почему вы получаете localhost/ibnm/site/localhost/ibnm/css. И одна небольшая коррекция в вашем коде, ее не очень хорошая идея, чтобы жестко кодировать имя сервера в коде, лучше получить имя сервера динамически. Так что вам не нужно менять при развертывании вашего сайта на реальном сервере.

//includes.php
    <?php
       define("css",     $host='http://'.$_SERVER['SERVER_NAME'].'/ibnm/css');
    ?>
  • 0
    Я буду помнить это. Спасибо
0

Вместо использования абсолютного пути вы можете просто добавить одну косую черту перед контуром CSS -

<link href="/<?= css; ?>/bootstrap.css" rel="stylesheet">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню