Что означают «статический» и «нестатический» в контексте Express?

#javascript #node.js #reactjs #express #middleware

#javascript #node.js #reactjs #экспресс #промежуточное программное обеспечение

Вопрос:

Документация для express.static() промежуточного программного обеспечения Express гласит:

Для обслуживания статических файлов, таких как изображения, файлы CSS и файлы JavaScript, используйте встроенную функцию промежуточного программного обеспечения express.static в Express.

Похоже, что включены JS-файлы для динамических приложений React, поскольку express.static("some_build_dir") , похоже, они работают даже тогда, когда some_build_dir это интерфейсное приложение React.

Однако кажется естественным, что приложения React, которые используют JS для динамической генерации веб-контента, следует считать динамическими, а не статическими, поэтому здесь я кое-что упускаю.

В: Какие вещи Express на самом деле считает «нестатическими» или «динамическими», если даже исходные файлы приложений React не соответствуют требованиям?

Комментарии:

1. «Статический» в основном означает фактические файлы в файловой системе. То, что происходит с клиентом, не имеет значения.

2. @GuyIncognito Итак, просто для подтверждения, определение «статический» в контексте Express отличается от определения «статический» во фразе «статическая веб-страница», это правильно?

3. Да. Express не знает и не заботится о том, что клиент делает с материалом, который он туда отправляет.

4. Для серверов статические файлы — это те, которые не «анализируются» сервером, например javascripts, таблицы стилей, изображения, документы и т.д. Express не запускает javascript в вашем каталоге сборки. Express напрямую передает его клиенту, в отличие от javascript в файлах javascript вашего сервера. Я знаю, что вначале это сбивает с толку, поэтому 1ed для противодействия понижению голосов.

Ответ №1:

Статические: файлы, которые веб-сервер (Express) считывает из файловой системы и отправляет клиенту в неизмененном виде.

Нестатические: ответы, которые генерируются программно (например, из шаблона, в который вставляются данные из базы данных).


Однако кажется естественным, что приложения React, которые используют JS для динамической генерации веб-контента, следует считать динамическими, а не статическими, поэтому здесь я кое-что упускаю.

Что касается сервера, исходный код JS и загрузочный HTML-файл, который он отправляет клиенту, являются статическими. Динамическая их часть обрабатывается на стороне клиента, которая находится вне контроля сервера.

Ответ №2:

статическое промежуточное программное обеспечение означает, что это статический файл или папки, и это true. приложение react является статичным, код не изменен, тот же index.html будет служить пользователю как статический файл, тогда содержимое будет изменяться при взаимодействии с пользователем и запросах API, но источник файлов останется тем же и не изменится