我想从文件夹提供html文件(如果存在),否则回退到动态应用程序。node.js/express:发送静态文件(如果存在)
目前我使用类似:
我怎样才能做到这一点?
某些教程使用称为connect
的模块。如果这是对我的问题最优雅的解决方案,我该如何将连接集成到我当前的代码中?
我想从文件夹提供html文件(如果存在),否则回退到动态应用程序。node.js/express:发送静态文件(如果存在)
目前我使用类似:
我怎样才能做到这一点?
某些教程使用称为connect
的模块。如果这是对我的问题最优雅的解决方案,我该如何将连接集成到我当前的代码中?
你不必做任何特别的事情。
我假设WebContent文件夹位于根目录中。
如果您的所有静态内容与您所展示的相同的基础文件夹中,您不必多次指定它。
app.use(express.static(__dirname + '/WebContent'));
,如果你有一个名为file.html在WebContent文件夹中的文件,你现在可以通过URL访问它即本地主机:4444/file.html
您使用了大量的样板。使用routes
更容易。这里有一个例子:
var routes = require('./routes');
app.configure(function() {
...
app.use(express['static'](path.join(__dirname, '/../WebContent')));
app.use(app.router);
});
// Routes
app.get('/', routes.index);
路线/ index.js:
exports.index = function (req, res) {
res.render('index');
};
渲染你的webapp根项目根目录之外是很奇怪的。感觉像不好的做法。这是必要的吗?
不,“WebContent”不在根文件夹中......这是为什么它不起作用? – Coyote
@Coyote我会这么猜。因为__dirname引用了Web应用程序的根目录,因此很难说出__dirname +/../WebContent解决的问题。 – scartag
谢谢!使用'app.use(express.static(path.normalize(path.join(__ dirname,'../WebContent'))));'它工作完美! – Coyote