Restify:如何在不与其他路由冲突的情况下提供静态文件服务?

3

我有一个正在创建的node.js应用程序,我正在使用restify。我已经为一些数据设置了GET路由,但我还想从我的根目录提供静态内容。

GET路由:

server.get({path : SURVEY_QUESTION_PATH, version : appVersion}, getLandingSurveyQuestions);

静态路由:

server.get(/\/?.*/, restify.serveStatic({
  directory: 'static',
  default: 'index.html'
}));

这个静态路由与我的动态路由有冲突:我如何提供这个静态内容,而不会与其他路由发生冲突?我不想为项目中的所有单独文件设置静态路由,你能帮助解决吗?
我尝试过:
1. 更改路由注册顺序 2. 调整静态路由的正则表达式
1个回答

4

到目前为止,我有一个技巧:更改正则表达式以包括将被提供的常见静态文件。这似乎效率低下,但是可以解决问题。

server.get(/(^\/$)|(\.(html|js|css|png|jpg)$)/, restify.serveStatic({
  directory: 'static',
  default: 'index.html'
}));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接