【问题标题】:Serving different static content in NodeJS depending on route根据路由在 NodeJS 中提供不同的静态内容
【发布时间】:2012-09-11 17:13:12
【问题描述】:
我应该以我是 NodeJS 新手的事实作为开头,更一般地说,我是对自己的 Web 服务器业务的所有编码,所以请多多包涵。
我想要实现的基本上是复制 Apache 的别名机制。我应该能够简单地在配置文件中配置别名列表及其对应路径,然后让 Node 根据请求提供正确的资源。
为了实现这一点,我挑选了两个中间件在 Connect 之上使用:静态和路由。 Route 大部分都按预期工作,但我无法掌握静态的工作原理。具体来说,我现在的问题是:是否可以定义多个“静态”以与 connect 一起使用,然后在收到请求后选择要通过哪个“静态”实际提供文件?
谢谢
【问题讨论】:
标签:
node.js
webserver
connect
【解决方案1】:
您可以定义多个静态以与连接一起使用。
app.use(express.static(__dirname + '/public1'));
app.use(express.static(__dirname + '/public2'));
连接中间件会检查文件是否存在于第一个目录中,如果没有找到它会检查下一个。
但静态意味着你不应该与 req 一起使用静态。
如果您希望根据请求提供文件,那么您应该设置一个可以根据请求提供内容的动态路由。