[英]Can't target node to serve static files
我是nodejs的新手。 我试图在server.js文件中将节点定位为服务静态页面。 使用第一个选项时:
app.use("/", express.static(__dirname +'/site/public/dist/public/',
{
index: 'index.html'
}));
该站点已到达,但是在按F5时,出现Cannot GET / so,我发现没有“默认”路由来加载请求的模块,因此我尝试放置“ *”而不是“ /”:
app.use("*", express.static(__dirname +'/site/public/dist/public/',
{
index: 'index.html'
}));
但不起作用。 我究竟做错了什么 ?
我假设您想使用express服务dist
文件夹。 将dist
放在server.js
的根目录中。 如果没有正确定义*
这是可以预期的。 我们在静态文件中使用false
,它不会中止线程。 这意味着false
将导致代码继续执行。 因此,将在/
之后显示代码行。 *
将被执行。
这是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!");
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.