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

时间:2016-05-17 15:44:46

标签: node.js restify

我有一个我正在创建的node.js应用程序,我正在使用restify。我为某些数据设置了GET路由,但我也希望从我的root用户提供静态内容。

获取路线:

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

静态路线:

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

此静态路由与我的动态路由冲突:如何提供此静态内容,而不与我拥有的其他路由冲突?我不想为我项目中的所有单个文件设置静态路由。

我试过了:

  1. 更改路线注册的顺序
  2. 调整静态路由的正则表达式

1 个答案:

答案 0 :(得分:4)

到目前为止,我有一个hack:更改正则表达式以包含将要提供的常见静态文件。这似乎效率低下,但有效。

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