#javascript #aurelia
#javascript #aurelia
Вопрос:
Все, что я пытался сделать, дало мне ошибку в консоли. «ОШИБКА [app-router] Ошибка: маршрут не найден: / (…) ошибка»
Я не понимаю, что я мог делать неправильно.
Мои пути к папкам:
--wwwroot
|_ src
|_app.html app.js
|_home.html home.js
|_mypage.html mypage.js
Мой app.html страница
<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>
Мой app.js файл является
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;
}
}
Я пытался использовать src/
перед всем, чтобы попробовать разные структуры папок. Но я начинаю думать, что что-то не так с установкой.
Мой config.js под путями находится "*": "src/*.js"
Комментарии:
1. Я вижу, что ваше приложение находится в
wwwroot
папке. Какой скелет вы используете? Или какие параметры вы предоставили cli, если вы использовали aurelia-cli?2. @FredKleuver Я понял это, main.js файл был указан по неправильному пути
3.
./
Замените свой синтаксис на свойmoduleId
. Вместо этого просто укажите ModuleID в качестве пути от корня вашего приложения (если корень естьsrc
, то просто скажитеhome
вместо./home
)
Ответ №1:
Укажите путь в config.js как показано ниже
paths: {
"*": "src/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
Об этом позаботятся. Если у вас есть какая-либо папка внутри src, укажите ModuleID: foldername/Home .
И еще один момент, если вы используете main.js файл, затем проверьте с помощью setRoot на файл приложения, например
aurelia.start().then(a => a.setRoot('app'));
Комментарии:
1. да, мой main.js файл оказался в неправильном пути к папке. Конфигурация, которую я опубликовал, также работает. Я использовал
setRoot()
без параметров.2. @christopherclark Если мой ответ идеален, отметьте его как правильный.