2016-11-16 2 views
0

Мы создали новый URL-адрес нашего сайта. Старый URL-адрес - blog.mysite.com. Новый URL-адрес - www.mysite.com/blog. Проблема, с которой я сталкиваюсь, заключается в том, что, пока css отлично работает на blog.mysite.com, он не работает на www.mysite.com/blog. Новый URL-адрес ищет файлы на www.mysite.com/wp-content ..., в то время как файлы на самом деле находятся по адресу www.mysite.com/blog/wp-content ... на новом URL-адресе (blog.mysite .com/wp-content ... на старом). Оба указывают на один и тот же сервер и те же файлы. Вот пример:Сломанный CSS при смене с blog.mysite.com на www.mysite.com/blog

<link href="/wp-content/themes/edition/prefix_css.css" rel="stylesheet"> 
 
<link href="/wp-content/themes/edition/header.css" rel="stylesheet">

+2

Вперед? Итак, обновите href до нужного URL? –

ответ

1

Как @JonStirling сказал, что вы должны обновить HREF атрибута. Причина, по которой он работал на blog.mysite.com, заключается в том, что это субдомен, а не новый url. Самый лучший способ, чтобы добавить домен динамически с помощью bloginfo(), так что ваш код будет нечто подобное:

<link href="<?php bloginfo('stylesheet_directory')?>/prefix_css.css" rel="stylesheet"> 
<link href="<?php bloginfo('stylesheet_directory')?>/header.css" rel="stylesheet"> 

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

1

Если вы используете Wordpress, рекомендуется использовать системы массового обслуживания WP. Если вы используете его правильно, вы можете сделать с ним много «трюков» - это (почти) невозможно с жестко привязанными ссылками и сценариями стилей.

Используйте функцию wp_head(), которая может вызвать у вас много вещей, например enqueued stylesheets (или scripts).

Так что я думаю, вы должны изменить свой код к следующему

// Put this code in your functions.php 
function enqueue_stylesheets() { 

    // enqueueing prefix_css.css for all media, with a version number of 1.0.0 
    wp_enqueue_style(
     'prefix_css', 
     get_stylesheet_directory_uri() . '/prefix_css.css', 
     array(), 
     '1.0.0', 
     'all' 
    ); 

    // enqueueing header.css for all media, with a version number of 1.0.0; AFTER prefix_css.css 
    wp_enqueue_style(
     'header', 
     get_stylesheet_directory_uri() . '/header.css', 
     array('prefix_css'), 
     '1.0.0', 
     'all' 
    ); 

} 
add_action('wp_enqueue_scripts', 'enqueue_stylesheets'); 

Удалите жестко закодированные ссылки таблицы стилей из головы, а затем измените заголовок:

<html> 
    <head> 
    <!-- everything that's in the header --> 
    <?php 
     wp_head(); 
    ?> 
    </head> 
<!-- continuing with the <body> --> 

Это будет выводить ваш таблицы стилей и уважение структуры URL-адреса сайта.

Конечно, вы можете использовать bloginfo('stylesheet_directory'), но лучше всего использовать get_stylesheet_directory_uri().

Смежные вопросы