Сервер обслуживает старые версии статических файлов, но обрезается или дополняется, чтобы соответствовать длине новых версий

Симптомы моей проблемы в точности совпадают с этим вопросом: Измененные статические файлы обрезаются/дополняются новым размером и обслуживаются старым - Fedora

Всякий раз, когда я вношу изменения в свои статические файлы (например,.js и .css), эти изменения не отображаются в обслуживаемом файле. Однако, если мои изменения заставляют файл изменять длину, то обслуживаемый файл соответствует новой длине:

  • Если я удаляю символы из любого места в статическом файле, тогда обслуживаемый файл обрезается в конце тем количеством символов.
  • Если я добавляю символы в любом месте статического файла, тогда обслуживаемый файл дополняется множеством символов (этого U + FFFD) в конце.

Причина, по которой связанный ответ не решает мою проблему, заключается в том, что я не использую Apache. Я пишу веб-приложение Python для Heroku, поэтому я использую gunicorn и Flask (и, следовательно, Werkzeug). Связанный ответ говорит, что отключение sendfile в Apache разрешило проблему, поэтому я попытался установить переменную USE_X_SENDFILE в False, согласно этой странице, но это не помогло. Я также установил 'SEND_FILE_MAX_AGE_DEFAULT' в 1 в дальнейшей попытке предотвратить какое-то кеширование, и это тоже не помогло.

Если это не очевидно, я действительно не знаю много о настройке веб-серверов, поэтому, столкнувшись с соответствующими хитами Google, я не согласен с тем, что может быть причиной этого. Помощь?

Ответ 2

В конце концов выяснилось, что это, вероятно, вызвано проблемами VM. Код, о котором идет речь, находился на диске Windows, но его обслуживали из виртуальной машины Linux, которая обращалась к коду через общий каталог. Повторная установка ресурса, похоже, устранила проблему (хотя и не обязательно надежно).