如何在使用IISNode在IIS中托管nodejs应用程序时启用静态文件(以及较少的支持)

时间:2012-09-06 19:38:11

标签: node.js less express iisnode

背景:

  • 使用expressjs的Nodejs app。
  • 使用IISNode在IIS上托管
  • Nodejs app位于名为/ myVirtualDirectory
  • 的虚拟目录中

问题:

您希望使用较少的静态文件或css,但传递给nodejs的网址是完整的网址,与独立的nodejs应用程序不符。

2 个答案:

答案 0 :(得分:2)

解决方案:

var express = require('express');
var app = express();
var lessMiddleware = require('less-middleware');


app.use('/myVirtualDirectory', lessMiddleware({
    src: __dirname + '/public',
    compress: true
}));

app.use('/myVirtualDirectory', express.static(__dirname + '/public'));

注意我们已经指定了要使用的中间件,我们已经在url前缀中传递了它以进行响应。只要这与虚拟目录的名称相同,这将匹配,您的文件将按预期提供。

答案 1 :(得分:2)

使用iisnode在IIS中托管node.js应用程序的一个好处是,您可以依赖IIS中的静态文件处理程序来提供静态文件。优点是性能的显着提高,因为静态内容的请求由本机代码提供,而无需调用JavaScript。

要使用iisnode设置IIS中托管的node.js应用程序以使用IIS静态文件处理程序提供静态文件,请使用http://tomasz.janczuk.org/2012/05/yaml-configuration-support-in-iisnode.html

中所述的URL重写模块

要了解使用静态文件处理程序而不是node.js模块提供静态文件的性能优势,请阅读http://tomasz.janczuk.org/2012/06/performance-of-hosting-nodejs.html