背景:
- 使用expressjs的Nodejs应用。
- 使用 IISNode 在 IIS 上托管
- Nodejs 应用程序位于名为/myVirtualDirectory 的虚拟目录中
问题:
您想要使用 less 提供静态文件或 css,但传递给 Nodejs 的 url 是完整的 url,与独立的 Nodejs 应用程序的预期不匹配。
最佳答案
解决方案:
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 前缀。只要它与虚拟目录的名称相同,它就会匹配,并且您的文件将按预期提供。
关于node.js - 使用 IISNode 在 IIS 中托管 Nodejs 应用程序时如何启用静态文件(和较少的支持),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307174/