библиотека роутинга фронтенд приложения тут ни при чем
если твой сервер просто раздает статику, то он действительно на роут
/login будет пытаться найти файл login,
не найдет и вернет 404
так что в сингл пейдж апликейшн при переходе на
/login ничего не запрашивается, просто js меняет внутренний стейт и рендерит новый DOM
при Ф5 идет запрос, файл не находится и получаешь 404
нужно раздавать статику чем-то с настройкой роутинга
и сказать примерно следующее
/ верни index.html
/login верни index.html
<любой другой внутренний роут приложения> - верни index.html
остальные пути пусть раздаются как статика (например чтобы запрос на
/static/js/main.js вернул собственно SPA, ну и стили подтянулись)
я бы посмотрел на что-то вроде
https://caddyserver.com/docs/caddyfile/directives/route