我有如下自定义路线:
// @flow
import React, { PureComponent } from 'react';
import { Switch, Redirect } from 'react-router-dom';
import { withRouter } from 'react-router';
import { Route } from 'components/Routes';
import Story from 'pages/Story';
import Page404 from 'pages/404';
class Routes extends PureComponent<{}> {
render() {
return (
<Switch>
<Route exact path="/" render={props => <Story {...props} />} />
<Route
exact
path="/chapter/:id"
render={props => <Story {...props} />}
/>
<Route path="/404" render={props => <Page404 {...props} />} />
<Redirect to="/404" /* Must be the last one */ />
</Switch>
);
}
}
export default withRouter(Routes);
这在 localhost 中工作正常,如果我访问 localhost:3000/chapter/3,Web 应用程序会成功重定向,不幸的是,如果我访问:mysite.azurewebsites.net/chapter/3,则在运行在 azure 应用程序服务上的实时构建中出现错误:
您要查找的资源已被删除、更名或暂时不可用。
我正在运行基于 Windows 的应用服务计划。我确定有一些选项可以设置重定向,即 /chapter/* -> /www_siteroot/ 但我一直无法弄清楚如何去做。
我通过转到应用程序服务设置并在“虚拟应用程序和目录”下添加 /chapter/1、/chapter/2 等并将它们定向到站点\wwwroot 来解决该问题。
我更喜欢像 /chapter/* 这样的通配符选项,但它似乎不起作用,并且出现错误。