Я просматривал подобные вопросы и нашел этот , но ответа там, по крайней мере, сам по себе, не достаточно c для моих нужд.
Подобно этому вопросу , я пытаюсь собрать мультитенантное приложение с другим скином для каждого свойства. Однако ответ, приведенный в приведенном выше вопросе, предполагает, что различные ресурсы скина могут быть жестко запрограммированы в приложении. Это было бы хорошо, если бы мы говорили о 2 или 3 скинах, но мое приложение должно поддерживать десятки при запуске и, возможно, десятки тысяч в течение срока службы (каждое свойство может создавать несколько скинов для разных кампаний).
У меня есть API, где я могу запросить скин, который в настоящее время представляет собой длинную строку HTML со встроенным токеном, указывающим, где содержимое приложения должно отображаться в скин (например, {{body}}
).
One из того, что мне нужно сделать, это вставить некоторые теги <link>
в элемент <Head>
, чтобы получить внешний CSS. Если React.Fragment поддерживает атрибуты (например, __dangerouslySetInnerHTML
), я не смог понять, как это сделать. Если это возможно, это может быть одним из способов.
Я столкнусь с той же проблемой, когда захочу добавить некоторое содержимое до и после приложения в тело страницы.
Поскольку я хочу, чтобы обложка отображалась на стороне сервера при первом запросе, а затем оставалась в состоянии c, пока вкладка не будет закрыта, имеет смысл сделать это в pages/_document.js
. После этого я как бы растерялся, что делать дальше. Анализ строки, содержащей содержимое обложки, достаточно прост, но как мне смешать этот сырой HTML с компонентами React?