@romaro

Как правильно передавать урлы в шаблонизатор при серверном рендеринге?

Разрабатываю сайт на базе express, без использования фронтенд-фреймоврков. Неожиданно застопорился на довольно простом моменте. Поскольку у меня серверный рендеринг, чтобы отдать страницу пользователю, я вызываю метод res.render, в который передаю шаблон и объект, который содержит значения для подстановок.

В шаблонах есть плейсходеры для статических урлов (всякие пункты меню и т.д.), выгдядят примерно так:
<a href="{{ urls.auth.signup }}" class="_btnReg __btnReg">{{ static.signup }}</a>


То есть при запуске приложения я предполагаю создавать глобальный freeze-объект urls, который будет содержать все урлы, сортированные по модулям. Например:
urls: {
  auth: {
    signup: '/signup',
    }
}


Этот объект со временем может разрастись до нескольких сотен урлов.

Соответственно, при каждом вызове res.render, я планирую инклюдить его в общий список плейсхолдеров. Без какой-либо фильтрации, тупо все урлы проекта.

Из альтернативных вариантов я вижу только два:
1) вручную прописывать урлы в шаблоне;
2) подставлять урлы на стадии сборки шаблонов вебпаком, что как бы выносит часть бизнес-логики в сборщик и тоже не радует.

Можно ли оптимизировать мой подход? Например, я задумываюсь о фильтрации, чтобы передавать в шаблон только те статические ссылки, которые есть на странице, но не понимаю, как подступиться к этому функционалу, да и стоит ли игра свеч.

В общем, будет интересно узнать, как решается такая задача в более-менее серьезных проектах.
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы