Проблема с путем к файлу в атрибуте Img Src

14 авг. 2013 г., 10:20:51
Просмотры: 86.1K
Голосов: 4

Чтобы изображения загружались корректно при использовании img src в HTML, мне приходится указывать полный путь к файлу. При использовании CSS мне достаточно написать:

background-image: url(images/morebutton.png)

С img src мне приходится использовать следующее:

<img src="wp-content/themes/blankslate/images/morebutton.png">

Использование такого пути к файлу отображает изображение на главной странице, однако когда я перехожу на страницу статьи, изображение не загружается. У меня та же проблема с логотипом - он отображается на главной странице, но на других страницах не показывается.

Может кто-нибудь подсказать, правильно ли настроен путь к файлу?

1
Комментарии

Прочитайте про относительные и абсолютные ссылки. Эта концепция является общепринятой, и если вы создаёте HTML-контент, вам стоит об этом знать. Затем вы сможете использовать каждый тип ссылок по мере необходимости, но сначала нужно понять, как они работают. Например, URL в CSS-файле всегда является относительным к местоположению самого CSS-файла. Атрибут SRC всегда относителен к местоположению запрашиваемого HTML-документа, поэтому он может меняться, если вы используете HTML в разных местах.

hakre hakre
14 авг. 2013 г. 10:54:09
Все ответы на вопрос 3
3

Нет, ваша настройка пути к файлам правильная, вам нужно указывать абсолютный путь в атрибуте src тега img, чтобы изображения загружались на других страницах, так как относительный путь будет меняться, например:

http://yourwebsite.com/page/wp-content/themes/blankslate/images/morebutton.png

вместо этого должно быть:

http://yourwebsite.com/wp-content/themes/blankslate/images/morebutton.png

Поэтому вам следует определить константу в файле function.php для пути к директории с изображениями, а затем использовать её в атрибуте src.

if( !defined('THEME_IMG_PATH')){
   define( 'THEME_IMG_PATH', get_stylesheet_directory_uri() . '/images' );
}

И затем вы можете использовать тег img следующим образом:

<img src="<?php echo THEME_IMG_PATH; ?>/morebutton.png" alt=""/>

Это решит вашу проблему. Вы можете использовать эту константу в любой части вашей темы, что очень удобно.

14 авг. 2013 г. 10:30:45
Комментарии

Вы также можете использовать относительные пути. В конечном итоге браузер все равно создаст из него абсолютную ссылку. Самое важное, чтобы созданная браузером абсолютная ссылка была корректной. Знание о том, как браузер формирует эту ссылку, важно, правила описаны в 5. Разрешение ссылок (RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax). Я бы сказал, что об этом стоит знать при создании HTML.

hakre hakre
14 авг. 2013 г. 10:55:55

Согласно документации, вы не можете вставлять PHP-код в страницу WordPress. Где именно вы размещаете этот код?

Paul McCarthy Paul McCarthy
21 мар. 2020 г. 21:17:22

Это добавляется в файл темы.

Kumar Kumar
22 мар. 2020 г. 05:01:23
1

Попробуйте так:

<img src="<?php echo get_bloginfo( 'template_directory' ); ?>/images/morebutton.png" />

Я обычно позволяю WordPress управлять путями, чтобы избежать возможных конфликтов. Также определенно проще всегда использовать предопределенные функции, встроенные в ядро системы.

14 авг. 2013 г. 10:29:55
Комментарии

Я загружаю файлы напрямую, если бы у меня было немного больше знаний в php, я бы попробовал это сделать, ответ выше сработал для меня! Спасибо за ответ

excessive34 excessive34
14 авг. 2013 г. 10:36:01
0

Вы можете использовать этот относительный путь:

<img src='/wp-content/themes/blankslate/images/morebutton.png'>

Символ / перед путём указывает браузеру перейти в корневую директорию и искать папку wp-content, а затем следовать дальше по указанному пути.

Альтернативно вы всегда можете использовать абсолютный URL-путь в img src. Например:

<img src='http://yourdomain.com/wp-content/themes/blankslate/images/morebutton.png'>

Смотрите также здесь, как перемещаться вверх или вниз по начальным папкам ваших относительных путей.

1 окт. 2015 г. 10:39:30