2011-05-11 3 views
1

내 이미지로드 속도를 높이려면이 작업을 수행하고 싶습니다. 이 내용을 모르는 사람들은 here을 읽으십시오.호스트 이름과 장고 전체에서 다운로드를 병렬화하십시오.

Django가 어떤 식 으로든 이것에 관해 도움을 줄 수있는 것이 있습니까? 정적 콘텐츠의 URL 생성을 자동화하는 방법을 주로 생각하고 있습니다. 나는 다음 패턴에 따라 해요 :

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

내가 처음 "http://cdnX.mydomain.com/", X는 1에서 4까지 번호 것 위치를 STATIC_URL을 설정 순차적으로 생각을하지만,이 중단됩니다 왜냐하면 나는 예를 들어 jquery가 항상 cdn2에 의해 제공된다는 보장이 없기 때문에 캐싱이다. 아니면 내가 틀렸어?

아무도 아이디어가 없습니까?

답변

1

custom template tag은 루핑을 처리하고 사용자 세션에 정보를 저장하려고 할 것입니다. 캐시 백엔드를 사용할 수도 있지만, 이는 당신에게 달려 있습니다. 당신은 항상 단지 등 STATIC_URL_1, STATIC_URL_2을 설정하고 다음 중 하나를 선택하여, 하나 개의 도메인 또는 다른 자원을 "지정"할 수 있다면

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

감사합니다. 나는 이렇게 할 것입니다. 내가 틀림없이 할 일은 세션 대신 컨텍스트에 정보를 저장하는 것입니다. –

+0

각 요청마다 다른 컨텍스트가 있으므로 브라우저 쪽 캐싱이 손실됩니다. django 캐싱이나 세션을 사용하여 여러 요청간에 동기화를 유지하고자 할 것입니다. –

0

글쎄, 그것은 조금 분명하지만, : 그것은 다음과 같이 보일 수 있습니다 템플릿의 각 리소스에 대해 수동으로 사용합니다.

관련 문제