elide dev и elide serve раздают каталог с файлами или запускают серверный скрипт.
elide dev ./public
elide serve ./dist| Команда | Адрес по умолчанию | Перезагрузка при изменении файлов |
|---|---|---|
elide dev | 127.0.0.1:3000 | HTML-страницы, если раздаётся каталог |
elide serve | 127.0.0.1:8080 | Нет |
Каталог запускает файловый сервер; скрипт выполняется как программа и не перезагружается.
~/demo elide dev site --no-tui --port 43765 &
Dev server for directory: "site"
Dev server: site at http://127.0.0.1:43765
~/demo curl -s http://127.0.0.1:43765 | head -2
GET / 200 (164us)
<!doctype html>
<h1>Hello, Ada!</h1>
~/demo sed -i.bak 's/Ada/Grace/' site/index.html
[watch] Create /home/demo/demo/site/sedsHkWQG
~/demo curl -s http://127.0.0.1:43765 | head -2
GET / 200 (112us)
<!doctype html>
<h1>Hello, Grace!</h1>
| Флаг | Действие |
|---|---|
--host HOST | Хост для привязки. |
--port PORT | Порт для привязки. |
--no-tui | Простой вывод журнала вместо TUI. |
--no-watch | Только dev: без отслеживания и перезагрузки. |
--contexts=N | Запускает N копий приложения; auto выбирает число по ядрам CPU. Только в Linux. |
Раздача каталога
| Запрос | Ответ |
|---|---|
/, /docs, /docs/ | Файл index.html каталога |
Каталог без index.html | 404; списков содержимого каталогов нет |
/about, когда есть только about.html | 404; ссылайтесь на about.html |
Скрытый файл, например /.env | 404. /.well-known/ раздаётся. |
Символическая ссылка за пределы каталога или .. в пути | 404 |
POST и другие методы | 405 от elide serve; elide dev отвечает как на GET |
Content-Typeопределяется по расширению файла:text/html; charset=utf-8,text/css,text/javascript,application/json,application/wasm,image/pngи так далее.- Файлы отправляются целиком, без сжатия, без
ETag,Last-ModifiedиCache-Control; запросыRangeи условные запросы получают полный ответ200. Для кеширования и сжатия поставьте перед сервером CDN или обратный прокси. elide devдобавляет в каждую HTML-страницу скрипт перезагрузки и перезагружает её при изменении любого файла в каталоге.
Запуск обработчика fetch
// entrypoint.mjs
export default {
async fetch(request) {
return new Response("ok");
},
};elide serve entrypoint.mjselide run entrypoint.mjs тоже запускает сервер — на экспортированных hostname и port или на 127.0.0.1:8080.
Elide.serve({ port: 3005, fetch }) использует собственный адрес с любой командой.
Сервер на нескольких контекстах
elide serve --contexts=4 entrypoint.mjs- Каждый контекст выполняет модуль точки входа один раз и хранит собственные глобальные переменные, поэтому счётчик запросов считает по каждому контексту отдельно.
- Соединение остаётся в одном контексте всё время своей жизни, включая запросы keep-alive.
- Если один контекст падает, сервер останавливается.
Для более тонкой настройки задайте engine.contexts в elide.pkl; см.
Контексты движка.