我制作了一个小型网络应用,并尝试按照Official Tutorial的说明进行部署。我成功运行了npm run build
,然后我从教程中复制了index.js
并进行了一些修改:
const express = require('express');
const path = require('path');
const app = express();
const auth = require('basic-auth'); // A
app.use(express.static('./build'));
app.get('/', function (req, res) {
const credentials = auth(req); // B
res.sendFile(path.join(__dirname, './build', 'index.html'));
});
app.listen(9000);
其中A行和B行用于检查授权。按node index.js
启动服务器时,访问localhost:9000
可能会按预期收到构建的index.html
。但是,B线根本没有处理过。我不知道发生了什么,所以我尝试删除整个app.get调用并再次启动服务器:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static('./build'));
app.listen(9000);
令人惊讶的是,访问localhost:9000
时,一切仍然正常。这是正确的行为吗?
P.S。我找到了一个可行的解决方法:将build/index.html
文件重命名为build/index2.html
,然后调用
res.sendFile(path.join(__dirname, './build', 'index2.html'));
代替。文件index.html
是否特别表达?