Express,如何始终提供静态目录?

问题描述 投票:0回答:2

因此,我需要Express始终提供静态目录。这些是有关如何仅提供index.html的大量指南,例如here。他们使用以下代码:

app.use(express.static(path.join(__dirname, 'build')));

app.get('/*', function (req, res) {
    res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

但是对我来说,问题是'/ *'路由仅提供index.html,而不提供它所提取的任何文件,例如main.js。我基本上需要我的应用程序始终访问“ build /”,无论访问者在哪条路径上,因为路由是由React Router的前端处理的。因此,例如:

app.get('/*', function (req, res) {
    res.redirect('/');
});

不起作用,因为它删除了路径。登陆“ / aa / bb / cc”的用户应获得与“ /”上的用户相同的内容(express.static)。我尝试过app.use('/*', express.static(...),但是这会在浏览器中导致SyntaxError: expected expression, got '<',因为似乎每个请求都被路由到静态index.html文件?

javascript node.js express routing
2个回答
0
投票

不要按照Express文档的说明,将其作为app.get放在主app.js文件中的app.use中:>


0
投票

为了回答我自己的问题,我找到了这个答案:https://expressjs.com/en/starter/static-files.html

© www.soinside.com 2019 - 2024. All rights reserved.