React Router / Express - 刷新动态URL参数

时间:2017-09-21 13:39:16

标签: javascript node.js reactjs express react-router

通过链接导航到'/ Article / 1 /'时,我的React路由器工作正常,但是当我刷新浏览器时,它不再检测我的文章组件。

Root.js

import React from 'react';
import { BrowserRouter as Router, Route, Link, browserHistory } from 'react-router-dom';
import Home from '../page/Home/Index';
import Article from '../page/Article/Index';

const Root = () => {
  return (
    <Router history={browserHistory}>
      <div>
        <ul>
          <li><Link to={'/'}>Home</Link></li>
          <li><Link to={'/About'}>About</Link></li>
        </ul>
        <hr />
        <Route exact path={'/'} component={Home} />
        <Route path={'/Article/:id'} component={Article} />
      </div>
    </Router>
  );
};

export default Root;

Server.js

var express = require('express');
var app = express();

app.use('/', express.static(__dirname + '/dist'));

app.listen(9000, function() {
  console.log('listening on 9000.')
});

我在网上看到,我的server.js中没有通配符可能与我有关 - 有人能指出我正确的方向吗?提前谢谢你!

编辑 - 这是我尝试过的(仍未渲染):

app.use(express.static(__dirname + '/dist'))

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

1 个答案:

答案 0 :(得分:1)

  

我在网上看到,我的server.js中没有通配符可能与我有关。

是的,那就是它。这里的目标是让您的客户端处理路由而不是服务器,为此,您需要服务器返回客户端应用程序,无论它获得什么URL。

简单修复 - 在服务器路由上将Copy-Item -Path 'some external path' -Destination 'some internal path' -FromSession $s更改为/