Нерабочие стили CSS после изменения URL сайта
У меня есть самостоятельно размещенный блог WordPress на домашнем сервере. Ранее я получал к нему доступ напрямую через его оригинальный IP-адрес, полученный через DHCP, но теперь я настроил для него статический IP-адрес. Проблема в том, что теперь все стили CSS не работают.
Я обновил файл wp-config.php
, добавив следующие две строки:
define('WP_HOME','http://192.168.0.100/myblog/');
define('WP_SITEURL','http://192.168.0.100/myblog/');
и перезапустил apache, но CSS все еще не работает. Есть ли какой-то другой конфигурационный файл, который мне нужно обновить?
Если у вас есть доступ к вашей MySQL базе данных, вы можете обновить таблицу wp_options
.
Перед изменением...
$ mysql -u <db_user> --password=<db_pwd> -D <db_name> <<<"select * from wp_options where option_name in ('siteurl', 'home');"
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
| 1 | siteurl | http://172.17.0.2/wordpress | yes |
| 2 | home | http://172.17.0.2/wordpress | yes |
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
Затем я изменил IP на 172.17.0.4 с помощью следующей команды...
$ mysql mysql -u <db_user> --password=<db_pwd> -D <db_name> <<<"update wp_options set option_value='http://172.17.0.4/wordpress' where option_name in ('siteurl', 'home');"
В результате таблица принимает следующий вид...
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
| 1 | siteurl | http://172.17.0.4/wordpress | yes |
| 2 | home | http://172.17.0.4/wordpress | yes |
+-----------+-----------------+---------------------------------------------------------------------------------------------------+----------+
В некоторых сценариях может быть полезно автоматизировать обновление этой конфигурации.

В WordPress Codex 'Изменение URL сайта' указано следующее:
Примечание: Оба параметра должны включать часть http:// и не должны иметь слэша "/" в конце.
Я заметил в вашем вопросе, что обе константы WP_HOME
и WP_SITEURL
содержат завершающий слэш. Это означает, что URL вашей таблицы стилей будет в таком формате:
http://192.168.0.100/myblog//wp-content/themes/my-theme/style.css'
Короче говоря, удалите завершающий слэш из обоих объявлений, и это должно решить проблему.
Также обратите внимание, что упомянутый Codex указывает следующее в отношении выбранного вами решения:
Это не обязательно лучшее решение, оно просто жестко прописывает значения в самом сайте. Вы больше не сможете редактировать их на странице общих настроек при использовании этого метода.
Я предлагаю использовать один из других, более постоянных методов, описанных для достижения вашей цели.

Двойные слеши, хотя технически некорректны, всё же обычно работают — проверено в пяти разных браузерах. Сомневаюсь, что в этом проблема.

@s_ha_dum — Зависит от того, был ли URL переписан. Если да, двойные слеши всё ещё могут работать (хотя это не идеально). Если нет, по сути вы запрашиваете листинг директории, поэтому двойные слеши не сработают.

URL таблиц стилей не переписываются, по крайней мере ядром WordPress, и именно это я тестировал — отправлял прямой запрос к URL таблицы стилей. Но я не нашёл ни одной комбинации слешей, которая бы ломала запросы на моём сервере для любой страницы, с переписанными URL (permalinks) или без. Если вам известны конкретные воспроизводимые случаи, пожалуйста, уточните.

@s_ha_dum - Я понимаю, что URL таблицы стилей не будет сломан, поэтому я и упомянул о не переписанных URL. Сейчас проведу тестирование, так как уверен, что ранее сталкивался с проблемами из-за двойных слешей...

@s_ha_dum - Что ж, мне не удалось сломать тестовый сайт двойными слешами, видимо мне это показалось... Однако технически мой ответ всё ещё корректен ;-)

Перенос вашего сайта на WordPress в другое место должен быть безболезненным процессом: вам просто нужно экспортировать базу данных, импортировать её на новый хостинг, переместить туда ваши файлы, настроить всё и запустить новый сайт. Однако есть некоторые шаги, которые при неправильном выполнении могут вызвать ряд проблем, создающих трудности и приводящих к неудачным переносам сайтов.
