.net 你所使用的任何框架都是为旧路线正确设置的,但是在你刚刚设置的新路线中有些不同。您在问题中提到CreateReactApp(CRA),但CRA本机不包含任何路由(您需要添加其他包来实现这一点)。在没有看到代码的情况下,我猜不出新旧路线之间有什么不同。在@Kr
.net 你所使用的任何框架都是为旧路线正确设置的,但是在你刚刚设置的新路线中有些不同。您在问题中提到CreateReactApp(CRA),但CRA本机不包含任何路由(您需要添加其他包来实现这一点)。在没有看到代码的情况下,我猜不出新旧路线之间有什么不同。在@Kr,.net,typescript,react-redux,single-page-application,.net,Typescript,React Redux,Single Page Application,你所使用的任何框架都是为旧路线正确设置的,但是在你刚刚设置的新路线中有些不同。您在问题中提到CreateReactApp(CRA),但CRA本机不包含任何路由(您需要添加其他包来实现这一点)。在没有看到代码的情况下,我猜不出新旧路线之间有什么不同。在@Kryten的评论之后,可能设置了一些限制,将您的SPA限制在某些预定义路线上。在不查看整个代码库的情况下,我会:1)确保例如/AuditLog的行为符合您希望/Copy的工作方式,2)在代码中搜索AuditLog(或您选择的整个代码库方法),并查
你所使用的任何框架都是为旧路线正确设置的,但是在你刚刚设置的新路线中有些不同。您在问题中提到CreateReactApp(CRA),但CRA本机不包含任何路由(您需要添加其他包来实现这一点)。在没有看到代码的情况下,我猜不出新旧路线之间有什么不同。在@Kryten的评论之后,可能设置了一些限制,将您的SPA限制在某些预定义路线上。在不查看整个代码库的情况下,我会:1)确保例如
/AuditLog
的行为符合您希望/Copy
的工作方式,2)在代码中搜索AuditLog
(或您选择的整个代码库方法),并查看是否有列出特定路径的文件。我的期望是会有一些白名单。谢谢@Kryten。我正在使用React Router路由这些请求。我不知道为什么,但如果我将所有内容重命名为Copy2,则路由将在刷新时工作。我在另一个位置错误地设置了服务器端呈现,并包含了第二次尝试呈现同一页面。因此,应用程序试图在两个位置呈现页面,这就是导致错误的原因。
import * as React from 'react';
import { Glyphicon, Nav, Navbar, NavItem } from 'react-bootstrap';
import { Container } from 'react-bootstrap/lib/Tab';
import { LinkContainer } from 'react-router-bootstrap';
import { Link } from 'react-router-dom';
import './NavMenu.css';
export default (props: any) => (
<Container>
<Navbar inverse={true} fixedTop={true} fluid={true} collapseOnSelect={true}>
<Navbar.Header>
<Navbar.Brand>
<Link to={'/'}>App Name</Link>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<LinkContainer to={'/Home'}>
<NavItem>
<Glyphicon glyph='home' /> Home
</NavItem>
</LinkContainer>
<LinkContainer to={'/AuditLog'}>
<NavItem>
<Glyphicon glyph='th-list' /> Audit Log
</NavItem>
</LinkContainer>
<LinkContainer to={'/Copy'}>
<NavItem>
<Glyphicon glyph='glyphicon glyphicon-link' /> Copy
</NavItem>
</LinkContainer>
{/* <LinkContainer to={'/AddLicenses'}>
<NavItem>
<Glyphicon glyph='apple' /> Add Licenses
</NavItem>
</LinkContainer> */}
</Nav>
</Navbar.Collapse>
</Navbar>
</Container>
);
import { ImplicitCallback, Security } from '@okta/okta-react';
import * as React from 'react';
import { Route } from 'react-router';
import Layout from './components/Layout';
import AddLicenses from './components/Pages/AddLicenses';
import AuditLog from './components/Pages/AuditLog';
import Copy from './components/Pages/Copy';
import Home from './components/Pages/Home';
// Todo: Move OKTA configuration to its own file -- can be shared between client and server.
export const config = {
client_id: 'REDACTED',
issuer: 'REDACTED',
redirect_uri: window.location.origin + '/implicit/callback'
}
export default () => (
<Layout>
<Security issuer={config.issuer}
client_id={config.client_id}
redirect_uri={config.redirect_uri}
>
<Route path='/' exact={true} component={Home}/>
<Route path='/Home' exact={true} component={Home}/>
<Route path='/AddLicenses' component={AddLicenses} />
<Route path='/AuditLog' component={AuditLog} />
<Route path='/Copy' component={Copy} />
<Route path='/implicit/callback' component={ImplicitCallback}/>
</Security>
</Layout>
);
<Route path='/Copy' component={Copy} />
<Route path='/Copy2' component={Copy} />