ExpressJS:如何忽略路由中的公共静态文件?

Luk*_*rns 7 static public match node.js express

app.get("/:name?/:group?", function(req, res){...
Run Code Online (Sandbox Code Playgroud)

匹配我公共目录中的文件.所以,如果我包含样式表:

<link type="text/css" href="/stylesheets/style.css" />
Run Code Online (Sandbox Code Playgroud)

节点将匹配/stylesheets/style.css并指定名称样式的style.css.

避免这种情况的最佳方法是什么?

Pet*_*ons 23

最简单的方法是确保express在路由器中间件之前运行静态提供程序中间件.你可以这样做:

app.use(express.static(__dirname + '/public'));
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

这样静态文件就会找到并响应,路由器将不会被执行.我对路由器的默认位置(最后)与我的coffeescript文件汇编搞砸了.FYI有关于这个文档这里(搜索页面app.router,你会看到一个说明段.