Как установить два источника для изображения в HTML в зависимости от того, где находится файл

0

Я делаю сайт на PHP и сталкиваюсь с проблемой, когда, если я включаю файл head.php из файла в другой каталог, он не может найти мой логотип. Я попробовал, включая два изображения, которые работали. У меня было изображение ошибки файла рядом с логотипом, так как только одно из изображений находится в правильном месте. Кто-нибудь знает, как я могу это исправить?

код head.php

 <div id="head">
    <div id="inner_head">
      <div id="logo">
        <img src="images/logo.png">
      </div>
      <div id="search">
        <form action='search/search.php' method='get'>
          <div id="search_feild">
            <input type="text" name="input">
          </div>
            <div id="search_submit">
                <input type="submit" VALUE="" /><div id="results"></div>
            </div>
        </form>
      </div>
      <a href="user/login.php">
        <div id="login_head">
          Login
        </div>
      </a>
      <div id="nav">
        <ul>
          <li>Home</li>
          <div class="nav_mid"></div>
          <li>About</li>
          <div class="nav_mid"></div>
          <li>Teachers</li>
          <div class="nav_mid"></div>
          <li>Links</li>
          <div class="nav_mid"></div>
          <li>Links</li>
          <div class="nav_mid"></div>
          <li>Art</li>
          <div class="nav_mid"></div>
          <li>Subjects</li>
          <div class="nav_mid"></div>
          <li>Downloads</li>
          <div class="nav_mid"></div>
          <li>Media</li>
          <div class="nav_mid"></div>
          <li>Contact</li>
        </ul>
      </div>
    </div>
  </div>
  • 0
    покажите код head.php где вы пытаетесь связать
  • 1
    Если URL-адрес изображения является относительным, он интерпретируется относительно URL-адреса содержащего документ, а не расположения head.php .
Показать ещё 1 комментарий
Теги:
image

3 ответа

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

Это не хорошая идея загрузить 2 изображения для решения проблемы, но, я думаю, вы можете использовать это:

$logo_1 = "logo 1 path";
$logo_2 = "logo 2 path";

if (file_exists($logo_1))
{
  echo '<img src="$logo_1" />';
}
elseif (file_exists($logo_2))
{
  echo '<img src="$logo_2" />';
}
  • 1
    Это приведет к путанице условных выражений, если вы загружаете любые другие ресурсы относительно.
1

Вероятно, вы сталкиваетесь с проблемами относительного пути. Поскольку файл, который вы альтернативно называете головкой, ссылается на ресурсы по его относительному пути, новый путь теперь некорректен.

- index.php
- head.php
- каталог
---- file.php (включает head.php), любые ссылки теперь на 1 каталог глубже и теперь неверны

Чтобы решить эту проблему, полностью обслуживайте все активы, чтобы избежать конфликтов.
<img src="<?php include $_SERVER['DOCUMENT_ROOT']. "/project-name/images/logo.png";?>"/>

0

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

ln -s /myoriginalsite/images/logo.php /myothersite/images/logo.php

Теперь вам просто нужно обновить /myoriginalsite/images/logo.php, и оба изменится.

Не требуется PHP-код.

Ещё вопросы

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