Перейти до вмісту

Сервер розробки

Роздавайте каталог із перезавантаженням сторінок за допомогою elide dev або elide serve, запускайте обробник у стилі Fetch і запускайте сервер у кількох контекстах Elide.

На цій сторінці

elide dev і elide serve роздають каталог із файлами або запускають серверний скрипт.

elide dev ./public
elide serve ./dist
КомандаАдреса за замовчуваннямПерезавантаження після зміни файлу
elide dev127.0.0.1:3000HTML-сторінки, коли роздається каталог
elide serve127.0.0.1:8080Ні

Для каталогу запускається файловий сервер; скрипт виконується як програма й не перезавантажується.

0:09 / 0:09
ПрапорецьДія
--host HOSTХост для прив’язки.
--port PORTПорт для прив’язки.
--no-tuiПростий вивід журналу замість TUI.
--no-watchЛише для dev: без стеження й перезавантаження.
--contexts=NЗапускає N копій застосунку; auto визначає кількість за ядрами CPU. Лише Linux.

Роздавання каталогу

ЗапитВідповідь
/, /docs, /docs/index.html каталогу
Каталог без index.html404; списків вмісту каталогів немає
/about, коли існує лише about.html404; посилайтеся на about.html
Файл, що починається з крапки, як-от /.env404. /.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.mjs

elide 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; див. Контексти рушія.

Приклади

Чи була ця сторінка корисною?