gpt4 book ai didi

routing - Aurelia 路由配置问题

转载 作者:行者123 更新时间:2023-12-04 16:43:51 24 4
gpt4 key购买 nike

当路径像 layer1/layer2 而不仅仅是 layer1 时,我在配置 Aurelia 路由时遇到问题。
这是项目文件结构(dist下的文件是根据src文件夹下的文件自动创建的)

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

当我执行以下操作时,它工作正常:

应用程序.html

<template>
<div>
<a href="user">register user</a>
<a href="otherlink">otherlink</a>
</div>
<div class='main'>
<router-view></router-view>
</div>
</template>


应用程序.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'}
]);
});


但是当我将路径从用户更改为用户/注册时,如下所示,它不再起作用

应用程序.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>


应用程序.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'}
]);
});


在 chrome 调试器中,我看到了这个错误:

获取 http://localhost:9000/ user/dist/user/register.html 404(未找到)

请注意,不知何故,额外的用户被添加到 url 中,导致无法找到 register.html 文件。同样,当我只是使用用户作为路由时,它可以正常工作而没有任何错误,但是当我只是从用户更改为用户/注册时,它不再起作用。

有人可以让我知道为什么会发生这种情况以及如何解决吗?

最佳答案

更改 href链接为 href="#/user/register"这应该为您解决问题。

我没有看到您启用了 pushState。请编辑您的 index.html并添加

<base href="http://localhost:9000/">

或者无论您的根网址是什么。这应该为您解决问题。

关于routing - Aurelia 路由配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com