Я использую express.static() для использования статических ресурсов. В частности, объект dotfiles
аргумента options
не создает ожидаемого поведения.Модуль NodeJS Express: параметры «dotfile» не работают
В экспресс документации говорится:
...
express.static
основан на подаче статическую, и отвечает за обслуживание статических активов ...
Кроме того, он утверждает, что подачи options
аргумента express.static()
должен иметь тот же эффект, что и служат статическим:
ДополнительногоОбъектможет иметь следующие свойства.
- dotfiles
option
для обслуживания dotfiles. Возможные значения: «разрешить», «отрицать» и «игнорировать»; по умолчанию «игнорировать».
Это то, что служит антистатической документацией состояние опции dotfiles
должно диктовать:
«не позволяет» Нет особого лечения составляет скрытые.
'deny' Отправить 403 для любого запроса на dotfile.
«игнорировать» Притвориться, что dotfile не существует и вызывать next().
Самым кратким примером я могу придумать это код ниже. кажется, что ресурсы, обслуживаемые службой-статикой, ведут себя так, как ожидалось, однако express.static()
игнорирует параметры при обслуживании одних и тех же ресурсов. То есть, несмотря на то, что аргумент {dotfiles : 'allow'}
передается в express.static()
, все запросы на ресурсы, начинающиеся с '.' вернуть ошибку 404.
Это происходит на версии узла v0.10.25, экспресс-версия 2.5.8, работающей на сервере ubuntu 14.04.1 LTS.
var express = require('express');
var app = module.exports = express.createServer();
var finalhandler = require('finalhandler');
var http = require('http');
var serveStatic = require('serve-static');
app.use('/', express.static('public', {
dotfiles : 'allow'
}));
app.listen(3001);
var serve = serveStatic('public', {
dotfiles : 'allow'
});
var server = http.createServer(function(req, res) {
serve(req, res, finalhandler(req, res))
})
server.listen(3002);
Ожидает, что serve-static и express.static будут вести себя точно так же. Есть что-то, чего я не хватает? или это проблема, с которой столкнулся кто-то еще?
Итак ... какой из них не работает должным образом? express.static или serveStatic? –
Экспресс-версия '2.5.8'? Ваша экспресс-версия переводится в 'static' из Connect' 1.x', которая, похоже, не поддерживает аргумент 'dotfiles'. Документация, которую вы, вероятно, смотрите, предназначена для Express '4.x'. Можете ли вы обновить экспресс? Если нет, возможно, вы можете напрямую подключиться к ['serve-static'] (https://www.npmjs.com/package/serve-static). – loganfsmyth