NodeJS Express 模块:'dotfile' 选项无效
NodeJS Express Module: 'dotfile' options no working
我 运行 在使用 express.static() 提供静态资源时感到奇怪。具体来说,options
参数的 dotfiles
对象没有产生预期的行为。
在快速文档中它指出:
...express.static
is based on serve-static, and is responsible for serving the static assets...
此外,它声称向 express.static()
提供 options
参数应该与 serve-static:
具有相同的效果
The optional options
object can have the following properties.
- dotfiles
option
for serving dotfiles. Possible values are "allow", "deny", and "ignore"; defaults to "ignore".
这就是服务静态文档说明 dotfiles
选项应该指示的内容:
'allow' No special treatment for dotfiles.
'deny' Send a 403 for any request for a dotfile.
'ignore' Pretend like the dotfile does not exist and call next().
我能想出的最简洁的例子是下面的代码。 serve-static 提供的资源似乎按预期运行,但是 express.static()
在提供相同资源时会忽略这些选项。也就是说,尽管参数 {dotfiles : 'allow'}
被传递给 express.static()
,但所有对资源的请求都以“.”开头。 return 404 错误。
这发生在节点版本 v0.10.25、Express 版本 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 2.5.8
,您正在查看的文档可能适用于 4.x
。 2.5.8
没有 dotfiles
选项,因为它使用不支持它的连接 1.x
。您的两个选择是:
- 像您在示例中所做的那样拉入
serve-static
。
- 升级您的
express
版本。 2.5.8
快3岁了。
我 运行 在使用 express.static() 提供静态资源时感到奇怪。具体来说,options
参数的 dotfiles
对象没有产生预期的行为。
在快速文档中它指出:
...
express.static
is based on serve-static, and is responsible for serving the static assets...
此外,它声称向 express.static()
提供 options
参数应该与 serve-static:
The optional
options
object can have the following properties.
- dotfiles
option
for serving dotfiles. Possible values are "allow", "deny", and "ignore"; defaults to "ignore".
这就是服务静态文档说明 dotfiles
选项应该指示的内容:
'allow' No special treatment for dotfiles.
'deny' Send a 403 for any request for a dotfile.
'ignore' Pretend like the dotfile does not exist and call next().
我能想出的最简洁的例子是下面的代码。 serve-static 提供的资源似乎按预期运行,但是 express.static()
在提供相同资源时会忽略这些选项。也就是说,尽管参数 {dotfiles : 'allow'}
被传递给 express.static()
,但所有对资源的请求都以“.”开头。 return 404 错误。
这发生在节点版本 v0.10.25、Express 版本 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 2.5.8
,您正在查看的文档可能适用于 4.x
。 2.5.8
没有 dotfiles
选项,因为它使用不支持它的连接 1.x
。您的两个选择是:
- 像您在示例中所做的那样拉入
serve-static
。 - 升级您的
express
版本。2.5.8
快3岁了。