In meiner Flask App serviere ich die statischen Assets über die App im dev env, aber ich würde gerne ein CDN in der Produktion verwenden. Jeder Vermögenswert wird in einer Vorlage geladen base.hmtl
genannt, so dass ich denke, die einfachste Lösung ist es, eine Variable in der Render-Funktion übergeben und es in der Vorlage verwenden wie:Statische Dateien von einem CDN anstatt von Flask in Produktion servieren
<script src="{{ STATIC_URL }}/js/main.js"></script>
Normalerweise wäre es eine leere Zeichenfolge in dem Entwickler sein env und die cdn URL in der Produktion. Ich möchte vermeiden, diese STATIC_URL
Variable zu jeder Ansicht zu übergeben. Ich könnte es mit
@bp.context_processor
def set_static_path():
return dict(STATIC_URL='https://foo.bar.com')
arbeiten lassen Aber das scheint mir ein wenig hacky. Gibt es einen besseren Weg, um dieses Problem zu lösen?