在此代码中
var history = require('connect-history-api-fallback');
var express = require('express');
var path = require('path');
var app = express();
app.use(history({
index: 'Trading Inquiry/index.html'
}));
app.use(express.static(path.join(__dirname, 'Trading Inquiry')));
app.get('/', function (req, res) {
console.log(1);
res.sendFile('Trading Inquiry/index.html');
});
var server = app.listen(process.env.PORT || 3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('My site started at http://%s:%s', host, port);
});
我将其设置为链接相对于文件夹Trading Inquiry
。加上ig,给出了/
路由,返回index.html文件,对于不匹配的路由,还返回index.html文件。但是,当我访问http://localhost:3000时,我会得到
Cannot GET /
这虽然有效
http://localhost:3000/index.html
有人知道怎么了吗?
谢谢
答案 0 :(得分:1)
Angular, Nginx
不使用快速公共路径,因此在发送文件时必须提及文件的绝对路径。
res.sendFile
另一种解决方案(我更喜欢的解决方案),
如果为快速静态中间件提供第一个参数“ /”,则将呈现文件名res.sendFile(path.join(__dirname, 'Trading Inquiry', 'index.html'));
。
因此,如果您更改以下行:
index.html
您不需要app.use('/', express.static(path.join(__dirname, 'Trading Inquiry')));
的获取路线,因此不需要以下代码。
index.html