Express配置单页应用(SPA)路由

将前端的静态资源打包后放在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...');
});

你可能感兴趣的:(Node.js)