Spec-Zone.ru › Express

Предоставление статических файлов в Express

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

Подпись функции:

express.static(root, [options])

Аргумент root задаёт корневой каталог, из которого будут предоставляться статические ресурсы. Для получения дополнительной информации об аргументе options, см. express.static.

Например, используйте следующий код для предоставления изображений, файлов CSS и JavaScript из каталога с именем public:

app.use(express.static('public'))

Теперь вы можете загрузить файлы, находящиеся в каталоге public:

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
Express ищет файлы относительно статического каталога, поэтому имя статического каталога не является частью URL.

Для использования нескольких каталогов с статическими ресурсами, вызовите функцию промежуточного ПО express.static несколько раз:

app.use(express.static('public'))
app.use(express.static('files'))

Express ищет файлы в том порядке, в котором вы задали статические каталоги с помощью функции промежуточного ПО express.static.

ПРИМЕЧАНИЕ: Для достижения наилучших результатов, используйте кэш обратного прокси для повышения производительности при предоставлении статических ресурсов.

Чтобы создать префикс виртуального пути (где путь фактически не существует в файловой системе) для файлов, предоставляемых функцией express.static, укажите путь монтирования для статического каталога, как показано ниже:

app.use('/static', express.static('public'))

Теперь вы можете загрузить файлы, находящиеся в каталоге public, с префиксом пути /static.

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

Однако, путь, который вы предоставляете функции express.static, относится к каталогу, из которого вы запускаете свой процесс node. Если вы запускаете приложение express из другого каталога, безопаснее использовать абсолютный путь к каталогу, который вы хотите предоставить:

const path = require('path')
app.use('/static', express.static(path.join(__dirname, 'public')))

Для получения более подробной информации о функции serve-static и её параметрах, см. serve-static.

Предыдущее: Базовая маршрутизация Следующее: Дополнительные примеры

© 2017 StrongLoop, IBM, and other expressjs.com contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v3.0.
https://expressjs.com/en/starter/static-files.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API