как импортировать файл css в реакцию при создании статического html и вставлять импортированный css в тег заголовка html?

Я пытаюсь сгенерировать статический html из реакции, используя метод renderToStaticMarkup. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я не могу импортировать css в компонент реакции. Я хочу импортировать css в свои компоненты React, такие как css-модули (импортировать стили из './style.css'). А затем вставьте этот загруженный css в сгенерированный статический заголовок html. Как я могу это сделать?

P.S. Я не могу использовать webpack из-за некоторых ограничений. Если для этого конкретного случая есть какой-либо плагин babel, сообщите мне об этом.

Вот как я генерирую статический html из компонента реакции:

const reactElement = require('react').createElement;
const ReactDomServer = require('react-dom/server');

const renderHTML = Component => {
  return ReactDomServer.renderToString(reactElement(Component))
}

person user10169731    schedule 06.09.2019    source источник
comment
Если у вас есть статический URL-адрес для таблицы стилей, вы можете отобразить тег <link>. Но если он должен войти в <head>, и вы не визуализируете это с помощью React, вам нужно будет прибегнуть к старому доброму JS, чтобы выбрать элемент head.   -  person Chris B.    schedule 07.09.2019


Ответы (2)


Это может быть сложно без большого количества пользовательской логики.

Если вы хотите встроить CSS только для начального рендеринга, а затем получить остальные после начального рендеринга, styled-components может быть лучшим вариантом, поскольку он поддерживает именно то, чего вы пытаетесь достичь, без слишком большой настройки: https://www.styled-components.com/docs/advanced#server-side-rendering< /а>

person skovy    schedule 06.09.2019

Вы можете передать URL-адрес в качестве реквизита и отобразить тег <link/>. Сделал здесь пример, не уверен, что это удовлетворит ваши потребности или вам это нужно. быть тегом стиля.

person Chris B.    schedule 06.09.2019