Я передаю запрос на https://mydomain/subserverA/foo на внутренний сервер A через обратный прокси-сервер, и приложение колбы запускается на сервере A. URL-адрес переписывается на прокси-сервере, сервер A может видеть URL-адрес запросакак https://foo.
Поэтому, когда я использую колбу по умолчанию и использую функцию url_for ("static", "hoge"), URL становится "/ static / hoge".Я хочу, чтобы URL был "/ subserverA / static / hoge".Эта проблема не может быть решена только с помощью параметров static_url_path и static_folder.
Я решил эту проблему с помощью следующих двух кодов.
Код A
view = Flask(__name__, static_url_path=‘/subdir/static',static_folder='static')
view.add_url_rule('/static/<filename>', 'static')
print(view.url_map)
## Map([<Rule '/subdir/static/<filename>' (GET, HEAD, OPTIONS) -> static>,
## <Rule '/static/<filename>' (GET, HEAD, OPTIONS) -> static>])
этот код работаетЧто ж.Но я не знаю, это хорошо.Это потому, что я не смог найти правило приоритета, когда «статическая» конечная точка имеет несколько URL-маршрутов.(Я нашел правило о нормальной конечной точке.)
Код B
view = Flask(__name__)
static_url = Blueprint('static_url', __name__, url_prefix='/subdir/', static_folder='static')
view.register_blueprint(static_url)
В этом коде используется префикс URL-адреса Blueprint.Но это заставляет меня писать url_for («static_url.static», «foo»).Я хочу писать так же, как и без обратного прокси.
У кого-нибудь есть хорошая идея?