无法将节点定位为提供静态文件

时间:2019-09-02 12:40:26

标签: node.js angular express routing middleware

我是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'
}));

但不起作用。 我在做什么错了?

1 个答案:

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