Относительные ссылки в CSS, после перемещения WordPress

#html #css #wordpress #relative-path

#HTML #css #wordpress #относительный путь

Вопрос:

Я создал блог с WordPress на временном тестовом домене. Я поместил это в основной каталог, а не в папку. Теперь я хочу переместить его на правильный веб-сайт, в папку. Я могу обновить все значения MySQL для URL сайта, и ссылки на относительный путь работают просто отлично.

Проблема в том, что, похоже, я не могу заставить мои ссылки на пути CSS работать. Я понимаю, что моя проблема в том, что они относятся к файлу CSS в теме WordPress, а не к странице. Но как я могу это исправить?

Вот пример:

 #topNav {background:#3a93c3 url(wp-content/uploads/2011/07/blueNav.jpg) repeat-x;}
  

Я попытался добавить ‘./’, ‘../’, и ‘../../’ в начало, но это вообще не работает.

Вопрос

Почему относительные пути не работают в CSS на моем сайте WordPress?

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

1. каков абсолютный путь к вашему файлу CSS и к каталогу wp-content?

2. example.com/blog/wp-content/themes/boilerplate/style.css и example.com/blog/wp-content

3. Мой лучший / единственный вариант изменить все на url (/blog/wp-content/uploads/2011/07/blueNav.jpg )?

4. Какой URL-адрес вашего файла css? Вы должны быть в состоянии использовать некоторую комбинацию ../

5. Я думаю, проблема в том, что это на сайте WordPress. Никакая комбинация ../ ничего не делает. Например, когда я набираю ../../../ URL в CSS оказывается example.com/blog/wp-content/themes/boilerplate /../../../… . Что, очевидно, не работает.

Ответ №1:

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

 wp-content/
    themes/
        mytheme/
            images/
                1.jpg
            style.css
  

итак, в вашем css вы можете просто сделать

 background:transparent url(images/1.jpg);
  

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

1. Я попробую это, просто ради удовольствия, и вернусь к вам через секунду

2. Не сработало. Он изменяет URL на этот: h t t p ://www.example.com/blog/wp-content/themes/boilerplate/../images/blueNav.jpg Обратите внимание, что в URL-адрес вставляется ../.

3. у вас случайно нет базового тега в вашем шаблоне, такого как <base href=» example.com/blog » />

4. о, подождите. я думаю, вы можете просто сделать background: прозрачный url (images/1.jpg );

5. Почему прозрачный фон может помочь?

Ответ №2:

Вы также можете использовать /, который является корнем вашего веб-сайта. Итак, что-то вроде url (/yourfolder/wp-content/…

Если вы хотите использовать относительные пути, вам нужно перейти в нужный каталог. Используя ../, который вы использовали ранее. ../ 1 dir вверх, добавьте еще один .. / 2 dir вверх и так далее.

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

1. Относительные пути будут работать в ваших файлах CSS, они надежны как скала. Но вы можете использовать их неправильно. Можете ли вы отредактировать свой вопрос, включив в него более подробную информацию, например, какой URL-адрес относится к файлу css?

2. Я думаю, проблема в том, что это сайт WordPress. Я думаю, что что-то происходит, когда WordPress обрабатывает файл CSS. Я могу заставить относительные URL работать на других моих сайтах, но не на этом.

3. @bozdoz Нет, WordPress определенно не несет ответственности. Это, во-первых, вообще не «обрабатывает файл CSS», таблица стилей включена в <head> тему, как это было бы на любом старом веб-сайте. Также относительные пути могут использоваться в wp.

Ответ №3:

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

Сначала исходная базовая тема использовала абсолютные пути:

 #blogTour {
    background: url('http://www.domain.com/wp-content/uploads/2010/09/signup.png');
}
  

В целом это было не идеально, поскольку мне приходилось настраивать региональные блоги, у них был бы другой URL, и я не хотел использовать переменные PHP ($SERVER [‘DOCUMENT_ROOT’]), но, может быть, вы можете!

В новой теме, которую я создал, я поместил ресурсы в каталог theme…можете ли вы поместить изображения в каталог themes?

 #blogFeed {
    background: url('_images/icons/blog-feed.png');
}
  

Наконец, попробуйте обернуть содержимое URL либо обратными ссылками url (‘content’), я помню, где-то читал, что при прокачке CSS через препроцессор (WordPress / PHP) обычно рекомендуется обернуть ваши строки обратными ссылками.

Ответ №4:

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

Пожалуйста, смотрите Сценарии на стороне сервера в файлах CSS для шагов по реализации этого.

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

1. Это было бы хорошей идеей, но это на сайте WordPress. Я пытаюсь манипулировать уже созданным шаблоном. WordPress, похоже, изменяет URL-адрес с помощью того, как он обрабатывает файлы CSS.

2. Вы можете сделать это с WordPress, просто следуйте инструкциям в ссылке, на которую я ссылался, и в ваших темах WordPress header.php добавьте в таблицу стилей ссылку на css.php файл, и вы будете в деле. Дайте мне знать, если вам нужен пример кода.

3. В целом это хорошая идея, но в этом примере мне намного проще просто выполнить поиск и замену, чтобы создать абсолютные пути в CSS.

Ответ №5:

Старый вопрос, но я вижу, что на самом деле на него нет ответа.
Как упоминалось, загружать материалы, связанные с темой, из wp-content/uploads/ не рекомендуется.

Но, если вы действительно хотите использовать что-то в wp-content/uploads , вы бы использовали:

 #topNav {background:#3a93c3 url("../../uploads/2011/07/blueNav.jpg") repeat-x;}
  

Этот путь будет работать.

При вызове относительного URL из темы php или css базовым становится URL, wp-content/themes/{theme-name}/ поэтому вам нужно создать резервную копию двух уровней каталога ( ../../ ) на wp-content/ .