1

在我的代码中,我目前有

app.use(express.static(__dirname + "/../styles"))
app.use(express.static(__dirname + "/../public"))
app.use(express.static(__dirname + "/../scripts"))
app.use("/flosses", express.static(__dirname + "/../styles"))
app.use("/flosses", express.static(__dirname + "/../public"))
app.use("/flosses", express.static(__dirname + "/../scripts"))
app.use("/flosses/edit", express.static(__dirname + "/../styles"))
app.use("/flosses/edit", express.static(__dirname + "/../public"))
app.use("/flosses/edit", express.static(__dirname + "/../scripts"))
app.use("/accounts", express.static(__dirname + "/../styles"))
app.use("/accounts", express.static(__dirname + "/../public"))
app.use("/accounts", express.static(__dirname + "/../scripts"))

这是非常乏味的。我可以做这样的事情吗?

app.use("*",express.static(__dirname + "/../scripts"))

注意:我的 css、js 和图像在 3 个不同的目录中,我需要 /thing1/index.css、/thing2/index.css 等。

谢谢,
阿里

4

2 回答 2

1

你可以使用这个,这有点 hacky IMO,但它应该可以工作:

// place this after your routes
app.routes.get.forEach(function(r) {
  app.use(r.path, express.static(__dirname + '/public'));
});

它仅适用于GET路线(因此是app.routes.get),并且您可能不需要对每条路线都使用它,因此您可以过滤r.path以仅挑选出您需要的路线)。另外,我不确定性能影响。

于 2013-03-10T18:29:17.520 回答
1

为什么不直接在网站根目录引用静态数据,而不是将它们添加到应用程序 URI 的每个级别?

这就是大多数人所做的,也是这些框架的设计目的。

于 2013-03-11T16:40:09.580 回答