2012-03-01 13 views

Odpowiedz

31

Używam następujące podejście:

# Custom static data 
@app.route('/cdn/<path:filename>') 
def custom_static(filename): 
    return send_from_directory(app.config['CUSTOM_STATIC_PATH'], filename) 

Zmienna CUSTOM_STATIC_PATH jest zdefiniowana w mojej konfiguracji.

I w szablonach:

{{ url_for('custom_static', filename='foo') }} 

Caveat emptor - Nie jestem pewien, czy jest to bezpieczne;)

+5

W moich oczach jest to najbardziej niestandardowych wersji, ale należy użyć 'Werkzeug. utils.secure_filename', aby sprawdzić nazwę pliku. – Jarus

+0

Wyjaśnienie dla każdego, kto przyjdzie "CUSTOM_STATIC_PATH" jest uważam rzeczywistą ścieżkę nazwy folderu. to nie jest jakiś specjalny klucz/zmienna .... które z jakiegoś powodu myślałem, że to było. –

+0

To zadziałało jak wdzięk, dzięki! –

26

Można użyć Blueprint z własnym statycznej reż http://flask.pocoo.org/docs/blueprints/

Blueprint

blueprint = Blueprint('site', __name__, static_url_path='/static/site', static_folder='path/to/files') 
app.register_blueprint(blueprint) 

Template

{{ url_for('site.static', filename='filename') }} 
Powiązane problemy