Я до сих пор не допер в чем там могут быть проблемы.
Как делают во всех фреймворках?
Скармливают все запросы точке входа.
Дальше различная магия определяет функцию/метод, которые соответствуют урле. Причем лучше сразу сопоставлять правила с коллбеками, чем завязывать что-либо на урлы. Это позволит добиться полного контроля над урлами и они не будут диктовать правила расположения файлов в фс или сервисов в контейнере.
Что касается жс цсс и прочей фигни, то здесь просто выделяем какую-нибудь урлу и раздаем с помощью nginx.
Если на бэкэнде требуется определить путь к этим файлам, то ничто не мешает написать хэлпер, который будет это делать. Зачем здесь могут понадобиться относительные пути, понятия не имею.