Express действительно любит кэшировать состояния (правда это больше касается шаблонов — он их компилирует и больше не проверяет, но слышать про файлы такое удивительно, возможно используемое раздающее middleware придерживается другой политики)
обычная практика в таких случаях: выделение «датахранилки» — папки, которую через настроенный location раздаёт nginx напрямую с кэшами (заголовки и настройки добавить по вкусу) https://nginx.org/ru/docs/beginners_guide.html#static <https://nginx.org/ru/docs/beginners_guide.html#static> вся статика складывается туда, и нет смысла грузить backend непрофильными запросами вообще — nginx отстреляется лучше всего если каким-то файлам требуется авторизация, можно сделать дополнительный internal location и с backend после проверки кидать туда (через x-accel-redirect — https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/) и nginx опять таки отдаст статику напрямую и быстрее любой backend логики более того, можно сделать, чтобы правильна работала отдача частичного контента (bytes range) и эффективная раздача с диска всё что не попадает под пути хранилки проксировать на Express > On 28 Sep 2020, at 20:08, Cyril Zlachevsky <cyril.zlachev...@gmail.com> wrote: > > Есть приложение на NodeJS, которое прекрасно работает в > developer-режиме. В качестве http-сервера используется ExpressJS. > В production-режиме появляется проблема - http GET запросы возвращают > 404-ю ошибку для всех новых файлов, загруженных после старта приложения > в каталог public. > > Пример: если до старта файл public/static/old.jpg существовал, GET > запрос вернет его с кодом 200. > Если мы загрузили через nodejs-приложение файл public/static/new.jpg > GET-запрос будет возвращать ошибку 404. Если перезапустить приложение, > GET на public/static/new.jpg будет возвращать 200. > > Гугление проблемы привело к пониманию, что это не ошибка, а особенность > Express-сервера и для production рекомендуется использовать связку > nginx+express. Как мне настроить работу этой связки, я не вполне > представляю, поэтому прошу помощи здесь. > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru