Как обрабатывать CSS для локали React Site, управляемой URL - PullRequest
1 голос
/ 14 февраля 2020

Я работаю над сайтом (реагирует через create-react-app, Sass для всех компонентов), чьи CSS и данные управляются URL. URL составлен следующим образом:

www.mysite.com/: brand-: locale

Каждый из 4 брендов имеет свои собственные цвета / шрифты / изображения bg / et c. Каждая локаль имеет свой собственный файл данных, поскольку сайт переведен на несколько языков. Каждый языковой стандарт также может иметь уникальные стили.

Примеры:

  • www.mysite.com/brand1-en (фирменный стиль, Engli sh контент)
  • www.mysite.com/brand1-fr-ca (фирменный стиль , Французское канадское содержание)
  • www.mysite.com/brand2-pt-br (фирменные стили 2, португальский бразильский контент)
  • www.mysite.com/brand3-en (фирменные стили 3, Engli sh контент)

Прямо сейчас мой проект построен на следующей парадигме:

  • Все комбинации бренда и локали имеют общую базу (без маркировки) CSS (определено в / sr c для компонента) как структура всех сайтов одинакова
  • Каждый бренд имеет файл Sass в / publi c со спецификацией бренда c стилей
  • В каждой локали есть файл Sass, который импортирует соответствующий файл бренда Sass, а также может иметь свои собственные уникальные стили
  • Я использую node-sass для компиляции Sass после запуска сборки и выводит CSS каждой локали в соответствующую папку
  • . Приложение считывает URL-адрес и программно добавляет ссылку на соответствующий файл CSS локали конец во время выполнения
  • Каждая локаль имеет свой собственный файл данных в соответствующей папке в / publi c, который извлекается при загрузке приложения (здесь нет проблем, только для справки)

Я хотел бы найти лучший способ оформления сайтов на основе URL, но я не знаю, как это сделать. Я получаю FOU C между загрузкой приложения (с отображением фирменных стилей) и добавлением тега CSS. Кажется, что должен быть способ иметь различия в брендах компонентов, но я не понимаю, как это не заставило бы CSS для всех брендов загружаться в браузер одновременно.

У кого-нибудь есть мысли?

...