Поддержка WordPress Multisite Как решить проблему с неверными путями в подомене мультисайта

  • Приветствую,

    прошу помочь и направить на путь истиный 🙂

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

    Допустим есть сайт site.com

    я создал поддомен sub.site.com

    установил туда тему нажимаю перейти на сайт, а у меня там каша, посмотрел в консоль браузера и обнаружил что пути ко всех подрубаемым файлам идут в таком формате http://sub.site.com/wp-content/themes/twentysixteen/style.css

    а физически файл стилей находится по адресу http://site.com/wp-content/themes/twentysixteen/style.css

    подключение стилей и скриптов у меня идет в файле function.php

    add_action('wp_print_styles', 'add_styles');
    if (!function_exists('add_styles')) {
    	function add_styles() {
    	    if(is_admin()) return false;
    	    wp_enqueue_style( 'bs', get_template_directory_uri().'/css/bootstrap.min.css' );
    		wp_enqueue_style( 'main', get_template_directory_uri().'/style.css' );
    	}
    }

    я бы мог конечно вместо get_template_directory_uri() написать обсолютный путь тогда все работает и отображается сайт нормально, но вот есть еще другие пути которые тоже выдают ошибку например плагин тоже не смог найти свои файлы и выволил в консоли ошибку
    http://task.alphaed.kz/wp-content/plugins/login-with-ajax/widget/login-with-ajax.js?ver=3.1.5

    подскажите пожалуйста что с этим поделать, я уже запарился гуглить, подобной ошибки еще не находил

    заранее благодарю.

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • а физически файл стилей находится по адресу http://site.com/wp-content/themes/twentysixteen/style.css

    Физически находится приблиз. тут: $documentroot/site.com/wp-content/themes/twentysixteen/style.css
    Физически — это где на хостинге, а как доступны по http.
    И физически все файлы субдоменов находятся в каталоге основного сайта. (если мы говорим о сети ВП, а не об отдельном ВП, в отдельном каталоге.)

    подскажите пожалуйста что с этим поделать, я уже запарился гуглить, подобной ошибки еще не находил

    Зачем что-то делать? Непонятно что Вас беспокоит.

    Единственное что — стоит учитывать наличие дочерней темы. Как минимум хорошо бы проверять наличие функции подключающей скрипты/стили.

    • Ответ изменён 7 лет, 5 месяцев назад пользователем SeVlad.
    • Ответ изменён 7 лет, 5 месяцев назад пользователем SeVlad.
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    посмотрел в консоль браузера и обнаружил что пути ко всех подрубаемым файлам идут в таком формате http://sub.site.com/wp-content/themes/twentysixteen/style.css

    а физически файл стилей находится по адресу http://site.com/wp-content/themes/twentysixteen/style.css

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

    Если ссылка с поддоменом не работает — что-то неверно настроено на сервере.

    Спасибо за ответы

    Зачем что-то делать? Непонятно что Вас беспокоит.

    SeVlad, меня беспокоит то что стили и скрипты не подключаются к сайту:)

    вот ссылка прошу посмотреть в консоли что происходит http://task.alphaed.kz

    Если ссылка с поддоменом не работает — что-то неверно настроено на сервере.

    Sergey Biryukov, ссылка с поддоменом работает, вот только я не совсем пойму если файл стилей, допустим, лежит в http://alphaed.kz/wp-content/themes/timaltask/style.css

    и когда я создаю поддомен с названием task.alphaed.kz то путь к файлу стилей становится http://task.alphaed.kz/wp-content/themes/timaltask/style.css, и глядя на файлы через ФТП, в ВП нет папки task.alphaed.kz (куда по идее ссылается подлючение стилей для этого поддомена) и соответственно и вылетает ошибка в консоли и сам сайт отображается без каких либо стилей т.е. просто разметка и текста.

    Я понимаю что при создании поддомена в ВП не создается папка на сервере, как это обычно происходит при создании поддомена через панель управления хостингом, и я примерно понимаю что работают поддомены в ВП через модуль мод реврайт в апатче, заменяя урлы в адресной строке (я не уверен что прав 🙂 )

    и вот итог, сайт на поддомене отображается без стилей

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

    могу дать доступы от всей сети ВП если хотите взглянуть

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

    • Ответ изменён 7 лет, 5 месяцев назад пользователем ktimur. Причина: дополнение

    и когда я создаю поддомен

    Если Вы сделаете СЕТЬ — Вам не нужно создавать никаких поддоменов (на хостинге имею ввиду).
    Видимо в этом и ошибка — не [правильно] создана сеть.

    • Ответ изменён 7 лет, 5 месяцев назад пользователем SeVlad.
    Модератор Yuri

    (@yube)

    путь к файлу стилей становится http://task.alphaed.kz/wp-content/themes/timaltask/style.css, и глядя на файлы через ФТП,

    Не должно быть никакой папки. Домены, если Сеть на поддоменах, виртуальные, DOCUMENT_ROOT для них тот же, что и для основного домена Сети.

    Я понимаю что при создании поддомена в ВП не создается папка на сервере, как это обычно происходит при создании поддомена через панель управления хостингом, и я примерно понимаю что работают поддомены в ВП через модуль мод реврайт в апатче, заменяя урлы в адресной строке (я не уверен что прав 🙂 )

    Всё верно. Включение режима мультисайтинга требует wildcard-доменов. Те записи в настройках сервера вида

    ServerAlias *.site.com

    Судя по тому, что любой поддомен в домене alphaed.kz работает (редиректит на регистрацию) — сервер настроен верно. А вот как именно Вы создали поддомен tasc — вот тут уже непонятно.
    Вот попробуете в настройках ВП создать другой подсайт. Можете поменять тему (код только не правьте) и посмотрите пути к стилям в исходном коде страниц.

    Ого так быстро ответили 🙂

    Если Вы сделаете СЕТЬ — Вам не нужно создавать никаких поддоменов (на хостинге имею ввиду).

    я это понимаю и на хостинге я не создавал поддоменов

    Не должно быть никакой папки. Домены, если Сеть на поддоменах, виртуальные, DOCUMENT_ROOT для них тот же, что и для основного домена Сети.

    что папки не должно быть я это тоже понял, я имел ввиду что ссылка (ссылка на фал стилей) идет как будто бы на эту папку которой нет

    Видимо в этом и ошибка — не [правильно] создана сеть.

    я тоже в первый раз так подумал, потом удалил все созданые сетью таблици из БД вернул дефолтные файлы wp-config.php и .htaccess

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

    устанавливал сеть по официальному гайду WP

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

    Судя по тому, что любой поддомен в домене alphaed.kz работает (редиректит на регистрацию) — сервер настроен верно. А вот как именно Вы создали поддомен tasc — вот тут уже непонятно.
    Вот попробуете в настройках ВП создать другой подсайт. Можете поменять тему (код только не правьте) и посмотрите пути к стилям в исходном коде страниц.

    SeVlad, поддомен task я создал средствами WP, т.е. зашел в (Сайты -> Добавить сайт) прописал имя домена, название сайта, и указал емаил пользователя, и все поддомен создан

    и я уже пытался создавать другие поддомены, они так же создаются как и этот task и так же все пути до стилей и скриптов идут test.alphaed.kz/wp-content/themes/timaltask/style.css

    • Ответ изменён 7 лет, 5 месяцев назад пользователем SeVlad. Причина: удалил доступы
    Модератор Yuri

    (@yube)

    что папки не должно быть я это тоже понял, я имел ввиду что ссылка (ссылка на фал стилей) идет как будто бы на эту папку которой нет

    Да есть она — у главного домена. Все поддомены ищут файлы там же, где и главный. Если ищут не там, то это проблема настройки веб-сервера.

    Часто бывает, что по инструкции настраивают Апач на авотподдомены, а про nginx, который отдает статику, забывают.

    ссылка (ссылка на фал стилей) идет как будто бы на эту папку которой нет

    Это правильно. Так и должно быть.
    http://*.site.com/ = http://site.com/

    ЗЫ. Если что — это я попытался создать подсайт testwp, но писем не пришло. 😉

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

    Всем спасибо за помощь.

    @ktimur, никогда не показывайте в паблике никакие доступы. Они же доступы всем.

    Я удалил их.

    Часто бывает, что по инструкции настраивают Апач на авотподдомены, а про nginx, который отдает статику, забывают.

    Кстати, да. http://task.alphaed.kz/wp-content/themes/timaltask/style.css 404 не ВПшная, а nginx-а.

    • Ответ изменён 7 лет, 5 месяцев назад пользователем SeVlad.

    ЗЫ. Если что — это я попытался создать подсайт testwp, но писем не пришло.

    понял 🙂 а с письмом думаю это просто в настройках мультисайта надо покапаться

    @ktimur, никогда не показывайте в паблике никакие доступы. Они же доступы всем.

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

    Кстати, да. http://task.alphaed.kz/wp-content/themes/timaltask/style.css 404 не ВПшная, а nginx-а.

    а вот тут можно разжевать 🙂 а то я не в курсе что делать, т.е. ошибка 404 прилетает не от ВП а от nginx значит все таки косяк в настройке алиасов в конфиге сервака?

    а вот тут можно разжевать 🙂 а то я не в курсе что делать, т.е. ошибка 404 прилетает не от ВП а от nginx значит все таки косяк в настройке алиасов в конфиге сервака?

    Это то, что чём сказал Юрий — nginx стоит на «первой линии» и берёт на себя статику (css, js, картинки) и не передаёт дальше на апач, на котором уже ВП. И который настроен на мультисайтовость. А nginx получается, что не настроен.

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Как решить проблему с неверными путями в подомене мультисайта» закрыта для новых ответов.