我想知道如何在Express应用程序中正确处理React构建。我现在面临的一个主要问题是,当使用浏览器时,React应用程序始终优先于其他端点,即使它位于快速链的末端。
我将React构建添加为静态文件夹,如下所示:
app.use(express.static(path.join(__dirname, '/react'), {
etag: false
}));
还尝试将etag
设置为false
,以便它不会缓存应用,但即使服务器关闭,它仍然会打开。我在快速链的末尾使用通配符GET
请求发送react版本:
app.get('*', (req, res) => {
res.sendFile(path.join(global.appRoot, '/views/index.html'));
});
之前还有其他端点,但不通过浏览器访问它们,它只是跳到React构建。如果使用Postman,端点被称为罚款。
答案 0 :(得分:1)
如果在服务器关闭时它仍然打开,则很可能安装了一个使用index.html缓存URL的服务工作者。
在Chrome上,转到Chrome开发者工具的“应用程序”标签,检查是否有任何服务人员注册了您正在使用的域名。
如果有,你可以取消注册,然后再试一次:) 但请确保检查服务工作者,因为如果将其设置为使用html拦截所有网络请求,则会再次发生。