ST。如果已在请求中提供,则跳过URI的“路径”部分

时间:2013-09-29 11:00:48

标签: javascript node.js st

我的 st 实例配置了

var mount = st({ 
  path: './app/',
  url: '/', // defaults to path option
  index: 'index.html',
  cache: {
    fd: none,
    content: none
  }
});

所以,当我向res/img/1.jpg发送请求时,它会转到./app/res/img/1.jpg这一点非常清楚。但是如果向app/res/img/1.jpg发出一些请求,那么它会将此请求重定向到./app/app/res/img/1.jpg,当然也找不到任何内容,因为我有不同的文件结构。

是否可以配置st或者添加一些自定义代码以跳过路径添加(如果它已经存在于URI中)?或者也许可以通过某种方式添加处理不同的特定路径,例如一些排除项?

1 个答案:

答案 0 :(得分:1)

我不知道是否可以直接使用st执行此操作,但如果在某些情况下遇到,则只需添加代码即可重写URL。

广告代码

var exceptions = { 
 'wrong_path':'right_path'
}

function rewriteUrl(req){
  if(exceptions[req.url]){
   req.url = exceptions[req.url];
  }
}

然后在st方法调用之前调用该函数

http.createServer(function (req, res) {
  rewriteUrl(req);
  mount(req, res);
}).listen(1234);