Сервер статических файлов
serveStatic
— это middleware, позволяющий отправлять статические файлы из
указанной директории.
import { serveStatic } from '@shelepuginivan/lunatic'import { join } from 'path'
const staticDir = join(__dirname, 'static')
app.use('/static', serveStatic(staticDir))
app.listen(8000)
В этом примере все запросы к /static
и /static/*
будут обрабатываться
serveStatic
. Он отправит файл следующим образом:
- Путь запроса
/static/style.css
-> Файл<staticDir>/style.css
. - Путь запроса
/static/images/d430849b.png
-> Файл<staticDir>/images/d430849b.png
и т.д.
Если запрашиваемый файл не существует, то в ответ будет иметь статус 404 Not Found
.
serveStatic
— это конфигурируемый middleware, что означает, что оно принимает
объект options
с настройками:
import { serveStatic, ServeStaticOptions } from '@shelepuginivan/lunatic'import { join } from 'path'
const serveStaticOptions: ServeStaticOptions = { dotfiles: 'forbid', index: 'index.html', lastModified: false,}
app.use('/static', serveStatic(join(__dirname, 'static'), serveStaticOptions))
app.listen(8000)
Опции конфигурации
dotfiles
Как сервер должен реагировать, когда клиент пытается получить доступ к файлам, начинающимся с точки (например, .htaccess
).
Принимает одну из следующих строк:
'allow'
— отвечает статусом200 OK
и отправляет файл'forbid'
— отвечает статусом403 Forbidden
и не отправляет файл'ignore'
— отвечаем статусом404 Not Found
и не отправляет файл, т.е. делает вид, что файла не существует.
По умолчанию: 'ignore'
.
etag
Включать ли заголовок
ETag
.
Принимает значение типа boolean
.
По умолчанию: true
index
Как сервер должен отвечать, когда клиент пытается получить доступ к каталогу.
- Установите значение
string
для отправки определенного имени файла. - Установите значение
false
, чтобы отключить эту функцию. Сервер будет отвечать статусом404 Not Found
.
По умолчанию: 'index.html'
.
lastModified
Включать ли заголовок
Last-Modified
.
Принимает значение типа boolean
.
По умолчанию: true