Ich habe ein Problem mit der Konfiguration Aurelia Route, wenn der Pfad wie layer1/layer2 nicht nur layer1. Hier ist die Projektdateistruktur (Dateien unter dist erstellt auf Dateien unter src Ordner automatisch basierend wird)Aurelia Routing-Konfiguration Problem
dist
| - home
| - home.html
| - home.js
| - user
| - register.html
| - register.js
app.html
app.js
main.js
src
| - home
| - home.html
| - home.js
| - user
| - register.html
| - register.js
app.html
app.js
main.js
Wenn ich folgendes tun es funktioniert gut:
app.html
<template>
<div>
<a href="user">register user</a>
<a href="otherlink">otherlink</a>
</div>
<div class='main'>
<router-view></router-view>
</div>
</template>
app.js
this.router.configure(config => {
config.title = 'demo';
config.options.pushState = true;
config.map([
// home routes
{ route: ['','home'], moduleId: './home/home', nav: true, title:'Home' },
// User register
{ route: ['user'], moduleId: './user/register', nav: true, title:'Register User'}
]);
});
Aber wenn ich den Weg von Benutzer-Benutzer ändern/registrieren wie unten, es funktioniert nicht mehr
app.html
<template>
<div>
<a href="user/register">register user</a>
<a href="otherlink">otherlink</a>
</div>
<div class='main'>
<router-view></router-view>
</div>
</template>
app.js
this.router.configure(config => {
config.title = 'demo';
config.options.pushState = true;
config.map([
// home routes
{ route: ['','home'], moduleId: './home/home', nav: true, title:'Home' },
// User register
{ route: ['user/register'], moduleId: './user/register', nav: true, title:'Register User'}
]);
});
Und in Chrom Debugger, sehe ich diesen Fehler:
GET http://localhost:9000/Benutzer/dist/user/register.html 404 (nicht gefunden)
Beachten Sie, dass irgendwie eine zusätzliche Benutzer wird der URL hinzugefügt, die nicht in der Lage sein Register.html Datei zu finden. Wenn ich gerade Benutzer als Route benutze, funktioniert es gut ohne Fehler, aber wenn ich nur von Benutzer zu Benutzer/Register ändern, funktioniert es nicht mehr.
Könnte mir bitte jemand sagen, warum das passiert und wie man es beheben kann?
Vielen Dank für Ihre Antwort. Das hat jedoch nicht funktioniert. Wir haben ** config.options.pushState = true ** hinzugefügt, um # sign aus der URL zu entfernen, sodass http: // localhost: 9000/user ohne # erreichbar ist. Aber wir können nicht http: // localhost: 9000/user/register arbeiten, auch wenn route aus irgendeinem Grund auf ** user/register ** gesetzt ist. –