:lightning: CDN option
This commit is contained in:
21
app.py
21
app.py
@@ -7,7 +7,7 @@ import logging
|
||||
from datetime import datetime
|
||||
from flask import Flask, render_template, abort, jsonify, request
|
||||
from comics_data import (
|
||||
COMICS, COMIC_NAME, COPYRIGHT_NAME, SITE_URL, FULL_WIDTH_DEFAULT, PLAIN_DEFAULT, LOGO_IMAGE, LOGO_MODE,
|
||||
COMICS, COMIC_NAME, COPYRIGHT_NAME, SITE_URL, CDN_URL, FULL_WIDTH_DEFAULT, PLAIN_DEFAULT, LOGO_IMAGE, LOGO_MODE,
|
||||
HEADER_IMAGE, FOOTER_IMAGE, BANNER_IMAGE, COMPACT_FOOTER, ARCHIVE_FULL_WIDTH, SECTIONS_ENABLED,
|
||||
USE_COMIC_NAV_ICONS, USE_HEADER_NAV_ICONS, USE_FOOTER_SOCIAL_ICONS, USE_SHARE_ICONS, NEWSLETTER_ENABLED,
|
||||
SOCIAL_INSTAGRAM, SOCIAL_YOUTUBE, SOCIAL_EMAIL, API_SPEC_LINK, EMBED_ENABLED, PERMALINK_ENABLED
|
||||
@@ -32,6 +32,24 @@ def add_ai_blocking_headers(response):
|
||||
return response
|
||||
|
||||
|
||||
@app.template_filter('cdn_static')
|
||||
def cdn_static(filename):
|
||||
"""Generate URL for static assets with CDN support
|
||||
|
||||
When CDN_URL is set, returns CDN URL. Otherwise returns local static URL.
|
||||
|
||||
Args:
|
||||
filename: Path to static file (e.g., 'css/style.css')
|
||||
|
||||
Returns:
|
||||
Full URL to the static asset
|
||||
"""
|
||||
from flask import url_for
|
||||
if CDN_URL:
|
||||
return f"{CDN_URL}/static/{filename}"
|
||||
return url_for('static', filename=filename)
|
||||
|
||||
|
||||
@app.context_processor
|
||||
def inject_global_settings():
|
||||
"""Make global settings available to all templates"""
|
||||
@@ -40,6 +58,7 @@ def inject_global_settings():
|
||||
'copyright_name': COPYRIGHT_NAME if COPYRIGHT_NAME else COMIC_NAME,
|
||||
'current_year': datetime.now().year,
|
||||
'site_url': SITE_URL,
|
||||
'cdn_url': CDN_URL,
|
||||
'logo_image': LOGO_IMAGE,
|
||||
'logo_mode': LOGO_MODE,
|
||||
'header_image': HEADER_IMAGE,
|
||||
|
||||
Reference in New Issue
Block a user