我无法弄清楚路由器和快速路由如何协同工作。
我有这个
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname) + '/server/static/index.html');
});
// routes
const apiRoutes = require('./server/routes/api');
app.use('/api', apiRoutes);
问题是我的api无法使用GET,因为它会重定向到index.html。如果我删除了通配符路由,那么react-router将无法正常工作。
答案 0 :(得分:2)
您的app.get('*')
语句将与任何请求相匹配。您可以通过更改语句的顺序轻松解决问题:
// routes
const apiRoutes = require('./server/routes/api');
app.use('/api', apiRoutes);
app.get('*', function(req, res) {
res.sendFile(path.resolve(__dirname) + '/server/static/index.html');
});
这样,路径以/api
开头的任何请求都将由apiRoutes
路由器处理,所有其他请求都由星号处理。