У меня есть приложение Flask, которое будет работать под Apache в процессе производства. У меня есть некоторые статические файлы, но они требуют аутентифицированного доступа. Таким образом, используя X-Sendfile казалось разумным, чтобы ускорить доставку файлов после аутентификации:Сервер разработки флагов с X-Sendfile
flaskapp = flask.Flask()
flaskapp.use_x_sendfile = True
Тогда где я генерации ответа:
return flask.send_file(filepath)
Это, кажется, работает отлично под Apache. Проблема заключается в том, когда я запускаю сервер разработки:
# Use SharedDataMiddleware to deliver JS, CSS, icons, etc.
flaskapp.wsgi_app = SharedDataMiddleware(flaskapp.wsgi_app, {'/static': '/path/to/static'})
flaskapp.run(host='0.0.0.0', debug=True)
Когда я запускаю его таким образом с use_x_sendfile = True
, заголовок X-Sendfile проявляется в реальной реакции и пустой файл (0 байт) доставляется клиенту , Отключение X-Sendfile (и принудительное удаление браузера для кэшированного файла) устраняет проблему, поэтому кажется, что запуск Flask-сервера Werkzeug не обрабатывает заголовок X-Sendfile. Есть ли способ заставить сервер разработки обрабатывать X-Sendfile, или я вынужден отключить его во время разработки?
Спасибо за подсказку. Я где-то загрузил вещи SharedDataMiddleware из сайта Flask. – jpmc26