Файловая Система — Относительные Пути К Файлам В Css При Прямой Ссылке (Без Постановки В Очередь)

  • Автор темы RUST1969
  • Обновлено
  • 22, Oct 2024
  • #1

Я создаю одностраничную дочернюю тему, в которой (извиняюсь перед сообществом Wordpress) я стараюсь максимально избегать использования PHP или API Wordpress, потому что на самом деле я просто хочу развернуть одну страницу с ее собственные сценарии и стиль.

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

 
 
 GET https://domain.com/images/ffw.png 404 ()
 
function, and that is working fine in my main PHP page (page-my-slug.php). (As a side note, I would prefer to use #ffw { background-image: url(images/ffw.png); } но это дает папку родительской темы. Как это обойти? [править: эта часть решена])

Но каково решение для моего файла CSS (например, для изображений)? Эта страница предполагает, что я должен иметь возможность вставлять туда относительные ссылки, но у меня это не работает.

Я связываю свою таблицу стилей непосредственно в моем style.css , because I want to override the parent theme style totally, and don't want to get into the details of enqueuing:

<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/style.css"> <!-- or, for exactly the same effect... --> <link rel="stylesheet" type="text/css" href="<?php echo get_theme_file_uri('style.css'); ?>">

В моем page-my-slug.php I am using, for example:

get_template_directory_uri()

Но при загрузке страницы выдает ошибку:

get_theme_file_uri()

Это говорит о том, что он ищет в корневом каталоге, а не относительно таблицы стилей.

Что я делаю неправильно? Интересно, связано ли это как-то с тем фактом, что я связал свой CSS напрямую, а не поставил его в очередь...

#css #файловая система #wp-файловая система

RUST1969


Рег
24 Nov, 2010

Тем
66

Постов
190

Баллов
540
  • 25, Oct 2024
  • #2

Относительные пути в CSS относятся к файлу таблицы стилей. Итак, если у вас есть эта структура:

 
 
 url(/images/logo.png) 

Тогда пути в CSS для изображений будут такими: get_template_directory_uri().'/logos/coollogo.png'; and get_template_directory_uri() . Это связано с тем, что относительные пути в CSS относятся к самой таблице стилей, а не к основному домену (если вы этого хотите, начните с косой черты: get_stylesheet_directory_uri() ).

Ни на что из этого не влияет то, как вы решите поставить файл в очередь.

Возможно, вы ошиблись, так как упомянули родительскую тему. Если вы пытаетесь загрузить изображение из родительской темы, относительный путь, подобный приведенному выше примеру, не будет работать. CSS не знает и не имеет понятия об отношениях родительской/дочерней темы.

Итак, если ваша структура каталогов выглядит так:

url(../parent-theme/images/logo.png)

Итак, если вы хотите перейти в каталог, а затем в родительский каталог, ваш путь должен выглядеть следующим образом: - parent-theme/ -- images/ --- logo.png - child-theme/ -- style.css -- images/ --- background.jpg .

 

Semyonkinmisha


Рег
13 Nov, 2019

Тем
74

Постов
208

Баллов
608
  • 25, Oct 2024
  • #3

Вы должны использовать url(/images/logo.png) . This is the same function as url(images/background.jpg) но он использует каталог дочерней темы.

в качестве примера:

url(images/logo.png)

вытащит логотип из папки logos вашей дочерней темы.

 

Светлана Маркова


Рег
28 Oct, 2020

Тем
81

Постов
183

Баллов
618
  • 25, Oct 2024
  • #4

Кажется, я знаю, какой ответ. Я только что пролистал исходный код до своей таблицы стилей и обнаружил, что сервер кэширует старую версию, в которой я по ошибке написал - style.css - images/ -- logo.png -- background.jpg with the initial slash taking me to the root.

Извините всех, еще один вопрос о путях CSS, который сводится к глупой периферийной проблеме.

 

Dennise


Рег
15 Sep, 2006

Тем
75

Постов
213

Баллов
608
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно