Так это решается правильным порядком подключения и правильной конфигурацией.
Например у express.static есть прекрасный параметр fallthrough который, имхо, всегда нужно ставить в false
Разница описана в документации. Я вообще был уверен, что location ~ { должно падать с синтаксической ошибкой, но, похоже, nginx это распарсил как location ~ "" {, т.е. регулярное выражение которое матчится на любую строку.