2012-03-16 134 views
2

如何在Django中控制静态文件的版本? I wrote custom templatetag,它将修改日期添加为文件URL的GET参数,但想知道 - 我是否在做。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 2012-03-16 18:25:51

回答

7

应用,如django-compressor,和django-pipeline有利于这些样的东西。

+0

django-pipeline的+1。工程很好,易于安装。我使用YUI Compressor。合并,缩小和版本您的CSS/JS。在调试模式下,它提供未组合/缩小的文件以便于调试。 – 2012-03-16 18:31:35

+0

我使用django压缩机,并没有任何问题。我不确定django-pipeline,但是django-compressor还允许预处理诸如LESS,SASS,CoffeScript等等。 – 2012-03-16 19:01:17