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