2016-10-12 3 views
0

Alles, was ich versucht habe, hat mir den Error in der Konsole gegeben. "FEHLER [App-Router] Fehler: Route nicht gefunden:/(...) Fehler"Basic Router funktioniert nicht in Aurelia

Ich verstehe nicht, was ich falsch machen könnte.

Meine Ordnerpfade sind:

--wwwroot 
    |_ src 
     |_app.html + app.js 
     |_home.html + home.js 
     |_mypage.html + mypage.js 

Meine app.html Seite

<template>  
    <div class="container-fluid"> 
     <div class="row"> 

      <div class="col-sm-3 col-lg-2"> 
       <nav class="navbar navbar-default navbar-fixed-side"> 
        <ul class="nav navbar-nav"> 

         <li repeat.for="row of router.navigation" class="${row.isActive ? 'active' : ''}"> 
          <a href.bind="row.href">${row.title}</a> 
         </li> 
        </ul> 
       </nav> 
      </div> 
      <div class="col-sm-9 col-lg-10"> 
       <div class="row"> 
        <h1>${message}</h1> 
       </div> 
      </div> 
     </div> 

    </div> 
    <div class="page-host"> 
     <!-- Route mount point --> 
     <router-view></router-view> 
    </div> 
</template> 

Meine app.js Datei ist

export class App { 
    message = "Hello Pathways"; 

    configureRouter(config, router) { 
     config.title = 'Scotch IG'; 
     // Use map to set array of possible routes 
     config.map([ 
       { route: ['','home'], name: 'home', moduleId: './home', nav: true, title:'Home' }, 
       { route: 'mypage', name: 'mypage', moduleId: './mypage', nav: true, title:'MyPage' } 
     ]); 

     // Create a binding to the router object 
     this.router = router; 
    } 
} 

Ich habe versucht src/ vor werfen alles um verschiedene Ordnerstrukturen auszuprobieren. Aber ich fange an zu denken, dass etwas mit der Installation nicht stimmt.

Meine config.js unter Pfade ist "*": "src/*.js"

+0

Ich sehe Ihre App unter einem 'wwwroot' Ordner ist. Welches Skelett verwendest du? Oder welche Optionen hast du dem CLI angeboten, wenn du Aurelia-CLI benutzt hast? –

+0

@FredKleuver Ich habe herausgefunden, dass die main.js Datei unter dem falschen Pfad ist –

+0

Nix deine '. /' Syntax auf deiner 'moduleId'. Stattdessen listet die moduleId als Pfad von der Wurzel Ihrer Anwendung auf (wenn die Wurzel 'src' ist, dann sagen Sie einfach' home' statt './Home') – Andrew

Antwort

1

Give Weg in config.js wie unten

paths: { 
    "*": "src/*", 
    "github:*": "jspm_packages/github/*", 
    "npm:*": "jspm_packages/npm/*" 
    }, 

Diese kümmern wird. Wenn Sie einen Ordner innerhalb von src haben, geben Sie moduleId: foldername/Home.

Und noch ein Punkt, wenn Sie main.js Datei dann überprüfen Sie mit SetRoot verwenden-Datei app wie

aurelia.start().then(a => a.setRoot('app')); 
+0

ja Meine main.js Datei landete im falschen Ordnerpfad. Die Konfiguration, die ich gepostet habe, funktioniert auch. Ich habe 'setRoot()' ohne Parameter verwendet. –

+0

@christopherclark Wenn meine Antwort perfekt ist, dann markieren Sie sie als korrekt. – Rayudu