fixed minify caching problem, thanks Niphlod
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.0.8 (2012-09-11 17:32:41) stable
|
Version 2.0.8 (2012-09-12 09:55:52) stable
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ try:
|
|||||||
have_git = True
|
have_git = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
have_git = False
|
have_git = False
|
||||||
GIT_MISSING = 'requires python-git module, but not installed or incompatible version'
|
GIT_MISSING = 'requires gitpython module, but not installed or incompatible version'
|
||||||
|
|
||||||
from gluon.languages import (read_possible_languages, read_dict, write_dict,
|
from gluon.languages import (read_possible_languages, read_dict, write_dict,
|
||||||
read_plural_dict, write_plural_dict)
|
read_plural_dict, write_plural_dict)
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ Modified by: Massimo Di Pierro <massimo.dipierro@gmail.com>
|
|||||||
import cssmin
|
import cssmin
|
||||||
import jsmin
|
import jsmin
|
||||||
import os
|
import os
|
||||||
|
import hashlib
|
||||||
|
|
||||||
def read_binary_file(filename):
|
def read_binary_file(filename):
|
||||||
f = open(filename,'rb')
|
f = open(filename,'rb')
|
||||||
@@ -56,6 +57,7 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
new_files = []
|
new_files = []
|
||||||
css = []
|
css = []
|
||||||
js = []
|
js = []
|
||||||
|
processed = []
|
||||||
for k,filename in enumerate(files):
|
for k,filename in enumerate(files):
|
||||||
if not filename.startswith('/') or \
|
if not filename.startswith('/') or \
|
||||||
any(filename.endswith(x) for x in ignore_concat):
|
any(filename.endswith(x) for x in ignore_concat):
|
||||||
@@ -66,6 +68,7 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
filename[len(static_path)+1:])
|
filename[len(static_path)+1:])
|
||||||
|
|
||||||
if filename.lower().endswith('.css'):
|
if filename.lower().endswith('.css'):
|
||||||
|
processed.append(filename)
|
||||||
if concat_css:
|
if concat_css:
|
||||||
contents = read_binary_file(abs_filename)
|
contents = read_binary_file(abs_filename)
|
||||||
if minify_css:
|
if minify_css:
|
||||||
@@ -75,6 +78,7 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
else:
|
else:
|
||||||
css.append(filename)
|
css.append(filename)
|
||||||
elif filename.lower().endswith('.js'):
|
elif filename.lower().endswith('.js'):
|
||||||
|
processed.append(filename)
|
||||||
if concat_js:
|
if concat_js:
|
||||||
contents = read_binary_file(abs_filename)
|
contents = read_binary_file(abs_filename)
|
||||||
if minify_js and not filename.endswith('.min.js') and \
|
if minify_js and not filename.endswith('.min.js') and \
|
||||||
@@ -84,6 +88,7 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
js.append(contents)
|
js.append(contents)
|
||||||
else:
|
else:
|
||||||
js.append(filename)
|
js.append(filename)
|
||||||
|
dest_key = hashlib.md5(repr(processed)).hexdigest()
|
||||||
if css and concat_css:
|
if css and concat_css:
|
||||||
css = '\n\n'.join(contents for contents in css)
|
css = '\n\n'.join(contents for contents in css)
|
||||||
if inline_css:
|
if inline_css:
|
||||||
@@ -91,9 +96,10 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
else:
|
else:
|
||||||
temppath = os.path.join(folder,'static',temp)
|
temppath = os.path.join(folder,'static',temp)
|
||||||
if not os.path.exists(temppath): os.mkdir(temppath)
|
if not os.path.exists(temppath): os.mkdir(temppath)
|
||||||
tempfile = os.path.join(temppath,'compressed.css')
|
dest = "compressed_%s.css" % dest_key
|
||||||
|
tempfile = os.path.join(temppath, dest)
|
||||||
write_binary_file(tempfile,css)
|
write_binary_file(tempfile,css)
|
||||||
css = path_info+'/compressed.css'
|
css = path_info+'/%s' % dest
|
||||||
new_files.append(css)
|
new_files.append(css)
|
||||||
else:
|
else:
|
||||||
new_files += css
|
new_files += css
|
||||||
@@ -104,9 +110,10 @@ def minify(files, path_info, folder, optimize_css, optimize_js,
|
|||||||
else:
|
else:
|
||||||
temppath = os.path.join(folder,'static',temp)
|
temppath = os.path.join(folder,'static',temp)
|
||||||
if not os.path.exists(temppath): os.mkdir(temppath)
|
if not os.path.exists(temppath): os.mkdir(temppath)
|
||||||
tempfile = os.path.join(folder,'static',temp,'compressed.js')
|
dest = "compressed_%s.js" % dest_key
|
||||||
|
tempfile = os.path.join(folder,'static',temp,dest)
|
||||||
write_binary_file(tempfile,js)
|
write_binary_file(tempfile,js)
|
||||||
js = path_info+'/compressed.js'
|
js = path_info+'/%s' % dest
|
||||||
new_files.append(js)
|
new_files.append(js)
|
||||||
else:
|
else:
|
||||||
new_files += js
|
new_files += js
|
||||||
|
|||||||
Reference in New Issue
Block a user