Распараллелить загрузку по именам хостов и Django - PullRequest
1 голос
/ 12 мая 2011

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

Есть ли что-то для Джанго, которое может помочь мне в этом, в любом случае?В основном я думаю о том, как автоматизировать создание URL для моего статического контента.Я следую следующей схеме:

<script src="{{STATIC_URL}}scripts/jquery.js" type="text/javascript"></script>

Сначала я подумал последовательно установить STATIC_URL на "http://cdnX.mydomain.com/",, где X будет числами от 1 до 4, но это нарушит кэширование, потому что яу меня нет гарантии, что, например, jquery всегда будет обслуживаться cdn2. Или я ошибаюсь?

Есть идеи у кого-нибудь?

Ответы [ 2 ]

1 голос
/ 12 мая 2011

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

LAST_CDN=4
cdn_format = "http://cdn%s.mydomain.com/%s"
@register.simple_tag(takes_context=True)
def cdn_url(context, url):
    request = context['request'] ## Assumes that request is in your context.
    current_cdn = request.session.get('current_cdn', 0)
    current_cdn += 1
    if current_cdn > LAST_CDN:
        current_cdn=1
    cdn_list = request.session.get('cdn_list', {})
    if cdn_list.get(url, None) is not None:
        return cdn_format % (cdn_list.get(url), url,)
    else:
        cdn_list[url] = current_cdn
        request.session['cdn_list'] = cdn_list
    return cdn_format % (current_cdn, url,)
0 голосов
/ 12 мая 2011

Ну, это немного очевидно, но если бы вы всегда могли просто «назначить» ресурсы тому или иному домену, настроив STATIC_URL_1, STATIC_URL_2 и т. Д., А затем выбрав один вручную для использования для каждого ресурса в вашем шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...