将前端的静态资源打包后放在express写的服务器中,存在刷新404问题。
原因:
express默认将url地址识别为服务端路由(可以理解为API路径),使用前端的路径访问就会各种找不到路径。
解决方案
在express中配置由js控制路由跳转
demo代码如下:
import * as express from 'express';
import * as path from 'path';
import * as connectHistoryApiFallback from 'connect-history-api-fallback';
const app = express();
app.use('/', connectHistoryApiFallback()); // 由js控制路由,一定要写在express.static前面!!!
app.use('/', express.static(path.join(__dirname, '..', 'client')));
// API部分
app.get('...', (req, res) => {
...
})
const server = app.listen(8000, 'localhost', () => {
console.log('Node Server Start on localhost:3000...');
});