Folgendes berücksichtigen:
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>
];
Ich habe eine App-Vorlage, eine HeaderTemplate und einen parametrisierten Satz von Routen mit demselben Handler (innerhalb der App-Vorlage). Ich möchte 404 Routen bedienen können, wenn etwas nicht gefunden wird. Beispielsweise sollte / CA / SanFrancisco von Area gefunden und verarbeitet werden, während / SanFranciscoz 404 sein sollte.
So teste ich schnell die Routen.
['', '/', '/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');
});
});
Das Problem ist, dass / SanFranciscoz immer von der Bereichsseite behandelt wird, aber ich möchte, dass es 404 ist. Wenn ich der ersten Routenkonfiguration eine NotFoundRoute hinzufüge, werden alle Bereichsseiten 404 angezeigt.
<Route handler={App} someProp="defaultProp">
<Route path="/" handler={Page} />
<NotFoundRoute handler={NotFound} />
</Route>,
Was mache ich falsch?
Hier ist ein Kern, der heruntergeladen und experimentiert werden kann.