我是nodejs的新手。 我试图在server.js文件中将节点定位为服务静态页面。 使用第一个选项时:
app.use("/", express.static(__dirname +'/site/public/dist/public/',
{
index: 'index.html'
}));
已到达站点,但按F5时,我得到了 不能获取 / 因此,我发现没有“默认”路由来加载请求的模块, 所以我尝试用“ *”代替“ /”:
app.use("*", express.static(__dirname +'/site/public/dist/public/',
{
index: 'index.html'
}));
但不起作用。 我在做什么错了?
答案 0 :(得分:0)
我假设您想使用express服务dist
文件夹。将dist
放在server.js
的根中。如果未正确定义*
,则可以预期。我们在静态文件中使用false
,它不会终止线程。这意味着false
将导致代码继续执行。因此,将执行/
之后出现的代码行。*
将被执行。
express.static(root, [options])
这是Express中的内置中间件功能。它提供静态文件,并基于serve-static。
const express = require('express');
const path = require('path');
const app = express();
// serve angular front end files from root path
app.use('/', express.static('dist', { redirect: false }));
// rewrite virtual urls to angular app to enable refreshing of internal pages
app.get('*', (req, res) => {
res.sendFile(path.resolve('dist/index.html'));
});
app.listen(process.env.PORT, () => {
console.log("Frontend is started!");
})