Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Can';t为静态文件提供服务的目标节点_Node.js_Angular_Express_Routing_Middleware - Fatal编程技术网

Node.js Can';t为静态文件提供服务的目标节点

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

我是nodejs的新手。 我试图在server.js文件中将节点作为静态页面的目标。 使用第一个选项时:

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!");
})