python - колба не видит изменений в файле .js


1 Answers

Если вы используете статические ресурсы с помощью Flask (как правило, это происходит в среде разработки), вам может потребоваться установить SEND_FILE_MAX_AGE_DEFAULT конфигурации SEND_FILE_MAX_AGE_DEFAULT :

Максимальный возраст send_static_file() управления кэшем по умолчанию для использования с send_static_file() (статический обработчик файлов по умолчанию) и send_file() , в качестве datetime.timedelta или в виде секунд. Переопределите это значение для каждого файла, используя get_send_file_max_age() для Flask или Blueprint, соответственно. По умолчанию 43200 (12 часов).

Решить это можно так же просто, как обновить словарь app.config , например так:

app = Flask(__name__)
...
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0

Если вы это сделаете, ваш браузер не будет кэшировать статические ресурсы, которые обслуживает Flask.

python flask flask-cache

Я внес изменения в один из файлов .js который я использую, и независимо от того, что я делаю, колба настаивает на получении из кэша памяти последней версии файла без изменений.

Чтобы уточнить, у меня есть следующая структура. Все начинается с foo.html

return render_template foo.html

foo.html есть форма, которая вызывает колбу с некоторыми данными, а затем возвращает второй шаблон bar.html :

return render_template bar.html

Этот второй шаблон вызывает некоторый файл .js , помещенный в static папку, но не обновляется при изменении кода.

Я упоминаю структуру выше, потому что, если файл .js был помещен в foo.html вместо bar.html тогда Flask bar.html новые изменения в файле. Но в bar.html Flask их полностью игнорирует.

Что происходит?

Единственное, что сработало, - это нажать «отключить кеш» в браузере и перезагрузить снова.



Related