MikeSchinkel
  • 0
Гуру

Настройка WordPress для кэширования Amazon CloudFront?

  • 0

Amazon CloudFront — это сеть распространения контента (CDN), которая поможет вам выдержать огромную нагрузку за короткий промежуток времени. Как проще всего настроить WordPress для размещения своих файлов (медиатека, CSS, файлы плагинов, тема) на S3/CloudFront?

(В настоящее время для этого я использую W3 Total Cache.)

Share
  1. Я собирался ответить на wordpress.org/extend/plugins/w3-total-cache, насколько я знаю, это лучшее решение для этого. Что ему не хватает, что вам нужно?

    • 0
  2. Плагин работает нормально; в качестве альтернативы вы можете использовать собственную функцию для замены bloginf() на ваш CDN-url; Пример:

    заменить URL в содержании:

    // replace content for CDN
    if ( !function_exists('fb_add_static_content_url') ) {
        function fb_add_static_content_url($content) {
                if ( is_admin() ) // eigentlich überflüssig
                    return $content;
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                );
    
                return str_replace( $search, $replace, $content );
        }
        add_filter( 'the_content', 'fb_add_static_content_url' );
    }
    

    заменить stylesheet_directoy и другие:

    // replace for CDN
    if ( !function_exists('fb_add_static_wpurl') ) {
        function fb_add_static_wpurl($info, $show) {
    
            if ( is_admin() )
                return $info;
    
            $keys = array(
                'url',
                'wpurl',
                'stylesheet_url',
                'stylesheet_directory',
                'template_url',
                'template_directory',
                );
    
            if ( in_array( $show, $keys ) ) {
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                    $wpurl . '/wp-content/themes/',
                    $wpurl . '/wp-content/plugins/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                );
    
                return str_replace( $search, $replace, $info );
    
            } else {
                return $info;
            }
        }
        add_filter( 'bloginfo_url', 'fb_add_static_wpurl', 9999, 2 );
    }
    

    замените template_directory и другие:

    function fb_add_static_stylesheet_uri($uri) {
    
                if ( is_admin() )
                    return $uri;
    
                $wpurl = get_bloginfo('wpurl');
    
                $search = array(
                    $wpurl . '/wp-content/images/',
                    $wpurl . '/wp-content/download/',
                    $wpurl . '/wp-content/themes/',
                    $wpurl . '/wp-content/plugins/',
                );
    
                $replace = array(
                    'http://cdn1.bueltge.de/',
                    'http://cdn2.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                    'http://cdn3.bueltge.de/',
                );
                return str_replace( $search, $replace, $uri );
    
    }
    add_filter ( 'template_directory_uri', 'fb_add_static_stylesheet_uri' );
    add_filter ( 'stylesheet_uri', 'fb_add_static_stylesheet_uri' );
    add_filter ( 'stylesheet_directory_uri', 'fb_add_static_stylesheet_uri' );
    
    • 0

Оставить ответ

You must login to add an answer.