Considera lo siguiente:
var AppRoutes = [
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
</Route>,
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Header} >
<Route path="/withheader" handler={Page} />
</Route>
</Route>,
<Route handler={App} someProp="defaultProp">
<Route path=":area" handler={Area} />
<Route path=":area/:city" handler={Area} />
<Route path=":area/:city/:locale" handler={Area} />
<Route path=":area/:city/:locale/:type" handler={Area} />
</Route>
];
Tengo una plantilla de aplicación, una plantilla de encabezado y un conjunto de rutas parametrizadas con el mismo controlador (dentro de la plantilla de aplicación). Quiero poder servir rutas 404 cuando no se encuentra algo. Por ejemplo, / CA / SanFrancisco debería ser encontrado y manejado por Area, mientras que / SanFranciscoz debería 404.
Así es como pruebo rápidamente las rutas.
['', '/', '/withheader', '/SanFranciscoz', '/ca', '/CA', '/CA/SanFrancisco', '/CA/SanFrancisco/LowerHaight', '/CA/SanFrancisco/LowerHaight/condo'].forEach(function(path){
Router.run(AppRoutes, path, function(Handler, state){
var output = React.renderToString(<Handler/>);
console.log(output, '\n');
});
});
El problema es / SanFranciscoz siempre está siendo manejado por la página de Área, pero quiero que sea 404. Además, si agrego un NotFoundRoute a la primera configuración de ruta, todas las páginas de Área 404.
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
<NotFoundRoute handler={NotFound} />
</Route>,
¿Qué estoy haciendo mal?
Aquí hay una esencia que se puede descargar y experimentar.