Предоставление статических файлов в 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.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