Этот перевод обеспечивается StrongLoop / IBM.
Этот документ может быть устаревшим по отношению к документации на английском языке. Последние обновления содержатся в документации на английском языке.Для предоставления статических файлов, например, изображений, файлов CSS и JavaScript в Express используется функция промежуточной обработки express.static
.
Для того чтобы начать непосредственное предоставление файлов, необходимо передать имя каталога, в котором находятся статические ресурсы, в функцию промежуточной обработки express.static
. Например, воспользуйтесь приведенным ниже кодом для предоставления изображений, файлов CSS и JavaScript, расположенных в каталоге public
:
app.use(express.static('public'));
Теперь можно загрузить файлы, находящиеся в каталоге public
directory:
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 из другого каталога, безопаснее использовать абсолютный путь к каталогу для предоставления файлов:
app.use('/static', express.static(__dirname + '/public'));