If you use flask-user in your flask application , and jac won't work, also flask_static_crompress package (which do not have even one line ,only jac flask contrb file reference, its funny).
Problem HOW to make it work.
In your Init_app function, if you do not have it please try to use this method create app once ,its very smart way .code like below:
app=Flask(__name__)
jac = JAC()
def init_app():
jac.init_app(app)
app.jinja_env.compressor_debug = app.config.get('DEBUG')
app.jinja_env.compressor_output_dir = './static'
app.jinja_env.compressor_static_prefix = '/static'
If you do not use Flask-User, its done otherwise you have to custom your static_finder function (file jac/contrib/flask.py ) and add one line to above config:
app.jinja_env.compressor_source_dirs = static_finder(app)
def static_finder(app):
def find(path=None):
if path is None:
folders = set()
for blueprint in app.blueprints.values():
if blueprint.static_folder is not None:
folders.update([blueprint.static_folder])
folders.update([app.static_folder])
return folders
else:
bp_values = app.blueprints.values()
# dectect flask-user
if 'flask_user' in [x.name for x in bp_values]:
app.blueprints['flask_user'].name = 'user'
for rule in app.url_map.iter_rules():
if '.' in rule.endpoint:
with_blueprint = True
blueprint_name = rule.endpoint.rsplit('.', 1)[0]
for x in bp_values:
if x.name == blueprint_name:
blueprint = x
data = rule.match(u('{subdomain}|{path}').format(
subdomain=blueprint.subdomain or '',
path=path,
))
else:
with_blueprint = False
data = rule.match(u('|{0}').format(path))
if data:
static_folder = blueprint.static_folder if with_blueprint and blueprint.static_folder is not None else app.static_folder
return os.path.join(static_folder, data['filename'])
raise IOError(2, u('File not found {0}.').format(path))
return find