Универсальная Реакция без Javascript

Каковы оптимальные методы вызова различных CSS, когда клиент для моей универсальной страницы React, отображаемой на сервере, отключил Javascript?

Я пытался включить Modernizr с className="no-js" в тег HTML, но он не редактировался.

Мне удалось заставить что-то работать, как показано ниже, но должен быть лучший способ.

<link rel="stylesheet" href="/public/css/script.css" />
<noscript>
  <link rel="stylesheet" href="/public/css/noscript.css" />
</noscript>

Я искал примеры, но не нашел ничего актуального.

1 ответ

Решение

В приложении, отображаемом на сервере, вы можете иметь один из многих источников данных:

  • параметр запроса
  • печенье
  • Данные POST

Единственным вводом для кода на стороне сервера является запрос, сделанный при загрузке страницы в вашем приложении в браузере. Вы можете настроить сервер во время его загрузки (например, когда вы работаете в среде разработки или рабочей среды), но эта конфигурация статична.

Запрос содержит информацию о запрошенном URL-адресе, включая любые параметры запроса, которые будут полезны при использовании чего-то вроде React Router. Он также может содержать заголовки с входными данными, такими как файлы cookie или авторизация, или данные тела POST.

В отображении сценария /noscript вы можете установить одно из нескольких значений по умолчанию:

  • Визуализируйте noscript как значение по умолчанию, затем переопределите его, введя CSS для скрипта через CSSOM
  • Использовать маршрут, определенный по noscript, по умолчанию, а затем перейти к маршруту сценария на основе файла cookie.
  • Создайте форму, которая отправляет возможности сценариев на сервер, а затем используйте ее как страницу перехода, чтобы избежать разметки / сценария в разметке

Рекомендации

Другие вопросы по тегам