Node.js Can';t为静态文件提供服务的目标节点
我是nodejs的新手。 我试图在server.js文件中将节点作为静态页面的目标。 使用第一个选项时:Node.js Can';t为静态文件提供服务的目标节点,node.js,angular,express,routing,middleware,Node.js,Angular,Express,Routing,Middleware,我是nodejs的新手。 我试图在server.js文件中将节点作为静态页面的目标。 使用第一个选项时: app.use("/", express.static(__dirname +'/site/public/dist/public/', { index: 'index.html' })); 该网站已到达,但当点击F5时,我得到 得不到/ 因此,我发现没有“默认”路由来加载请求的模块, 所以我试着用“*”代替“/”: 但它不起作用。 我做错了什么?我假设您想使用express为dist
app.use("/", express.static(__dirname +'/site/public/dist/public/',
{
index: 'index.html'
}));
该网站已到达,但当点击F5时,我得到
得不到/
因此,我发现没有“默认”路由来加载请求的模块,
所以我试着用“*”代替“/”:
但它不起作用。
我做错了什么?我假设您想使用express为
dist
文件夹提供服务。将dist
放在server.js
的根目录中。如果您没有正确定义*
,则会出现这种情况。我们在静态文件中使用false
,它不会中止线程。这意味着false
将导致代码继续执行。因此,在/
之后出现的代码行将执行*
这是Express中的内置中间件功能。它服务于静态文件,并基于服务静态文件
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!");
})
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!");
})