Я создаю небольшое веб-приложение, которое подается с данными в реальном времени. Данные предоставлены компанией Erlang с использованием Cowboy. Для простоты я хотел бы, чтобы Cowboy также обслуживал статические файлы для веб-страницы. Но, похоже, Cowboy не распознает, если файлы изменены на диске, продолжая обслуживать старую версию.Статический файловый обработчик Cowboy обслуживает старые версии файлов
Я попытался отключить etags и очистить кеш браузера, что не увенчалось успехом. Пока только перезагрузка всего приложения Erlang работает, что очень утомительно (по крайней мере, во время разработки). Есть ли способ отключить механизм кэширования Cowboy или сообщить об изменениях файла?
Cowboy настроечный код:
start(_StartType, _StartArgs) ->
% setup cowboy
Dispatch = cowboy_router:compile([{'_',
[{"/", cowboy_static, {priv_file, app_name, "static/index.html"}},
{"/[...]", cowboy_static, {priv_dir, app_name, "static"}}]}]),
{ok, _} = cowboy:start_http(http_listener, 5, [{port, 12345}], [{env, [{dispatch, Dispatch}]}]),
sup:start_link().
На стороне записки, это иронично, что Ковбой тщательно формирует ETags на основе времени изменения файла и размер, но когда измененный файл запрашивается он просто отвечает со старым ETAG вместо проверки изменений.
С наилучшими пожеланиями, clonejo
файл: get_cwd(), вероятно, не самый лучший вариант, если вы хотите этого избежать, вместо этого вы можете установить переменную env. – clonejo