快速路由中的正则表达式

Regular Expresseion in Express routing

我有一个名称类似于 workbox-someHash.js 的文件,每次部署我的应用程序时都会生成该哈希值。我需要在同名路线上提供服务,到目前为止我尝试的是

  "(workbox-([a-z0-9]{8})[.]js)",
  express.static(__dirname + "/../build/(workbox-([a-z0-9]{8})[.]js)", {})
);

但我在这里赢不了。有没有什么我忘记添加的,或者我应该以其他方式添加。非常感谢任何帮助

如果问题是您有一堆名称与您的正则表达式匹配的静态文件

workbox-([a-z0-9]{8})[.]js

并且,它们位于文件夹中:

__dirname + "/../build"

而且,如果您想自动提供这些静态文件,那么您可以这样做:

app.use("/workbox-([a-z0-9]{8})[.]js", express.static(__dirname + "/../build"));

这将匹配任何以 / 开头然后匹配您的工作箱正则表达式的路径请求。然后它将在 __dirname + "/../build" 文件夹中查找具有相同名称的文件。


一个解决方案实际上可能并不那么困难。如果此引用的 build 文件夹仅包含可以公开提供的文件,那么您也可以这样做:

app.use(express.static(__dirname + "/../build"));

这将接收任何传入请求并查看 __dirname + "/../build" 中是否存在匹配路径。如果是这样,它将为它服务。无论它是您的工作箱文件名之一还是该文件夹中的任何其他匹配文件名,都是如此。