2012-03-16 4 views
2

Как вы управляете версией своих статических файлов в Django? I wrote custom templatetag, который добавляет дату изменения в качестве параметра GET URL-адреса файла, но хотел бы знать, что я делаю.версии статических файлов Django

код Тэг:

import os 

from django import template 
from django.conf import settings 


register = template.Library() 

@register.simple_tag 
def sstatic(path): 
    ''' 
    Returns absolute URL to static file with versioning. 
    ''' 
    full_path = os.path.join(settings.STATIC_ROOT, path) 
    try: 
     # Get file modification time. 
     mtime = os.path.getmtime(full_path) 
     return '%s%s?%s' % (settings.STATIC_URL, path, mtime) 
    except OSError: 
     # Returns normal url if this file was not found in filesystem. 
     return '%s%s' % (settings.STATIC_URL, path) 
+0

Это вернет путь, но как вы изменяете фактические имена файлов, чтобы они соответствовали этому пути? – silent1mezzo

ответ

7

приложения, такие как django-compressor и django-pipeline хороши для этого рода вещей.

+0

+1 для джанго-конвейера. Отлично работает и прост в установке. Я использую компрессор YUI. Объединяет, минимизирует и версии вашего css/js. В режиме отладки он служит для несанкционированных/мини-файлов для упрощения отладки. –

+0

Я использую django-компрессор и не имел никаких проблем с ним. Я не уверен в django-конвейере, но django-compressor также позволяет выполнять предварительную обработку таких вещей, как LESS, SASS, CoffeScript и т. Д. –

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