我正在使用它将Node.js/Express设置为基本的Web服务器 - 它只提供一组静态页面而无需任何其他处理.当浏览器提取没有任何文件名的网站时,我希望它始终提供/default.html.
var express = require("express");
var app = express();
var port = process.env.PORT || 5000;
app.configure(function(){
app.use(express.bodyParser());
});
app.use(express.logger());
app.use(express.static(__dirname ));
app.listen(port, function() {
console.log("Listening on " + port);
});
Run Code Online (Sandbox Code Playgroud)
我尝试过使用res.sendfile和res.redirect,但没有太大的成功; 我显然错过了一些东西,因为我最终得到了"没有方法"的错误.
你会说什么是实现目标的最简单方法?
小智 25
我简要介绍了提供公用文件夹和指定要提供的默认页面的最佳做法.在查看"Express中间件"文档后,我的解决方案如下所示,
var express = require('express');
var app = express();
var options = {
index: "coming-soon.html"
};
app.use('/', express.static('app', options));
var server = app.listen(8081, function () {
var host = server.address().address;
var port = server.address().port;
console.log('my app is listening at http://%s:%s', host, port);
});
Run Code Online (Sandbox Code Playgroud)
Ale*_*tis 17
你可以这样做.假设它是一个相对于.js文件的html文件:
app.get('/', function(req, res){
res.sendfile('default.html', { root: __dirname + "/relative_path_of_file" } );
});
Run Code Online (Sandbox Code Playgroud)
小智 5
奇怪的是没有人提到重定向。
app.get('/', function(req, res){
res.redirect('/default.html');
});
Run Code Online (Sandbox Code Playgroud)
当然,这假设您的“default.html”位于公共路径中。您可以使用以下方法设置公共路径:
app.use(express.static(relative_path_to_project_root));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27268 次 |
| 最近记录: |