在我的aspxwebform页面(test.aspx)中,我有一个选项卡,我想在单击时执行react组件(第二个组件)。
代码
测试.aspx
<Link to="/SysAdmin/HelpPageManagement" href="#">Help Pages</Link>
主文件.js
var React = require("react");
var ReactDom = require("react-dom");
var firstComponent = require("../Components/helpPage_Management_Component");
import {Router, Route, browserHistory } from 'react-router';
var secondComponent = React.createClass({
render() {
return ( <h1>Help Page </h1> );
}
});
const router = (
<Router history={browserHistory}>
<Route path="/SysAdmin/HelpPageManagement" component={secondComponent} />
<Route path="/systemmaintenance.aspx" component={firstComponent} />
</Router>
)
ReactDom.render(router, document.getElementById('helpPage'));
2条答案
按热度按时间bsxbgnwa1#
这是因为在React Router中定义路由是一个 * 客户端 * 路由,如果你直接请求url,你的服务器需要知道客户端将处理路由。
404由服务器生成,因为这通常是默认路由行为。
相反,配置你的服务器,使默认的是发送回主html页面与客户端路由,然后,React路由器将处理它在客户端的基础上的url。
juud5qan2#
我遇到了同样的问题,Davin特里翁对另一个答案的评论使我找到了this other SO question上的解决方案。
使用以下配置向我的站点添加
web.config
文件对我很有效,可以将所有路由发送回index.html
文件: