Aurelia 路由 - 使用 Webpack Dev Server 时使用 F5 重新加载网站会导致错误的捆绑 URL
Aurelia Routing- Reloading the Web Site with F5 results in wrong bundle URLs when using Webpack Dev Server
我是 Aurelia 的新手,一直坚持使用 pushState
选项正确设置路由。我有两条路线(一条用于列表视图,一条用于详细信息视图)。当我加载 http://localhost:8080 时,包被正确加载:
但是,当我简单地按 F5 重新加载页面时 http://localhost:8080/applicants/1
是地址栏中的当前 URL,然后捆绑包没有正确加载,因为现在 applicants
是捆绑包的一部分 URL:
我的路由器配置是这样的:
import { RouterConfiguration } from 'aurelia-router';
import { PLATFORM } from "aurelia-framework";
export class App {
configureRouter(config: RouterConfiguration): void {
config.options.pushState = true;
config.options.root = '/';
config.map([
{
route: '',
name: 'applicants',
moduleId: PLATFORM.moduleName('./applicant-list/applicant-list'),
title: 'Applicants'
},
{
route: 'applicants/:id',
name: 'applicant-detail',
moduleId: PLATFORM.moduleName('./applicant-detail/applicant-detail'),
title: "Applicant Detail"
}
]);
}
}
列表视图仅使用常规 HTML 标签进行导航:
<template>
<h1>Applicant List</h1>
<ul>
<li>
<a href="/applicants/1">Applicant 1</a>
</li>
<li>
<a href="/applicants/2">Applicant 2</a>
</li>
</ul>
</template>
详细视图的实现应该无关紧要,但无论如何:
export class ApplicantList {
id: number;
activate(queryParameters: { id: number }): void {
this.id = queryParameters.id;
}
}
我在 Aurelia Routing Documentation, nor in their Contact Manager Tutorial 中找不到任何有用的信息。当我切换到基于哈希的路由时它工作正常。
提前感谢您的帮助。
写完这个问题后不久,我意识到 HTML 元标记 base
不是由 Aurelia CLI 配置的。要修复它,请转到 webpack.config.js
并搜索包含 const baseUrl = ''
的行。这应该更改为 const baseUrl = '/'
。您可能必须重新启动 Webpack Dev Server 才能生效(npm run start
或 yarn start
)。
我是 Aurelia 的新手,一直坚持使用 pushState
选项正确设置路由。我有两条路线(一条用于列表视图,一条用于详细信息视图)。当我加载 http://localhost:8080 时,包被正确加载:
但是,当我简单地按 F5 重新加载页面时 http://localhost:8080/applicants/1
是地址栏中的当前 URL,然后捆绑包没有正确加载,因为现在 applicants
是捆绑包的一部分 URL:
我的路由器配置是这样的:
import { RouterConfiguration } from 'aurelia-router';
import { PLATFORM } from "aurelia-framework";
export class App {
configureRouter(config: RouterConfiguration): void {
config.options.pushState = true;
config.options.root = '/';
config.map([
{
route: '',
name: 'applicants',
moduleId: PLATFORM.moduleName('./applicant-list/applicant-list'),
title: 'Applicants'
},
{
route: 'applicants/:id',
name: 'applicant-detail',
moduleId: PLATFORM.moduleName('./applicant-detail/applicant-detail'),
title: "Applicant Detail"
}
]);
}
}
列表视图仅使用常规 HTML 标签进行导航:
<template>
<h1>Applicant List</h1>
<ul>
<li>
<a href="/applicants/1">Applicant 1</a>
</li>
<li>
<a href="/applicants/2">Applicant 2</a>
</li>
</ul>
</template>
详细视图的实现应该无关紧要,但无论如何:
export class ApplicantList {
id: number;
activate(queryParameters: { id: number }): void {
this.id = queryParameters.id;
}
}
我在 Aurelia Routing Documentation, nor in their Contact Manager Tutorial 中找不到任何有用的信息。当我切换到基于哈希的路由时它工作正常。
提前感谢您的帮助。
写完这个问题后不久,我意识到 HTML 元标记 base
不是由 Aurelia CLI 配置的。要修复它,请转到 webpack.config.js
并搜索包含 const baseUrl = ''
的行。这应该更改为 const baseUrl = '/'
。您可能必须重新启动 Webpack Dev Server 才能生效(npm run start
或 yarn start
)。