Dart/Angular 2:页面重新加载时发布服务 404
Dart/Angular 2: Pub serve 404 on page reload
有一些类似的问题,但我还没有找到解决这个问题的方法。
假设我使用
pub serve --port 13371
为了在本地启动我的 Angular 2 / Dart 应用程序。在基本文件中,我有一个这样配置的路由器:
@RouteConfig(const [
const Route(
path: '/home',
name: 'Home',
component: HomeComponent,
useAsDefault: true
),
const Route(
path: '/about',
name: 'About',
component: AboutComponent
)
])
class AppComponent {}
和这样的模板:
<nav>
<ul>
<li>
<a [routerLink]="['Home']">Home</a>
</li>
<li>
<a [routerLink]="['About']">About</a>
</li>
</ul>
</nav>
在 Dartium 或其他浏览器中,我转到 http://localhost:13371/
,这会将我重定向到 http://localhost:13371/home
。现在,每当我按 reload 时,我都会收到 404 错误。
这是服务器配置的原因。当 angular 更改 URL 时,它知道去哪里以及如何重写 URL。但对于服务器 /home
或 /about
不存在。
但是我的问题是如何配置 pub
以便始终重定向到 index.html 以便我可以刷新并转发到子站点?是否有一些配置要添加到 pubspec.yaml?
或者添加
bootstrap(AppComponent, [
/* other providers */,
provide(LocationStrategy, useClass: HashLocationStrategy),
])
或者使用像Nginx这样支持重写的代理。 pub
本身不以任何方式支持它。
不要在路径“/”上使用斜杠。试试这个:
const userRoutes: Routes = [
{ path: 'home', component: HomeComponent, pathMatch: 'full' },
];
有一些类似的问题,但我还没有找到解决这个问题的方法。
假设我使用
pub serve --port 13371
为了在本地启动我的 Angular 2 / Dart 应用程序。在基本文件中,我有一个这样配置的路由器:
@RouteConfig(const [
const Route(
path: '/home',
name: 'Home',
component: HomeComponent,
useAsDefault: true
),
const Route(
path: '/about',
name: 'About',
component: AboutComponent
)
])
class AppComponent {}
和这样的模板:
<nav>
<ul>
<li>
<a [routerLink]="['Home']">Home</a>
</li>
<li>
<a [routerLink]="['About']">About</a>
</li>
</ul>
</nav>
在 Dartium 或其他浏览器中,我转到 http://localhost:13371/
,这会将我重定向到 http://localhost:13371/home
。现在,每当我按 reload 时,我都会收到 404 错误。
这是服务器配置的原因。当 angular 更改 URL 时,它知道去哪里以及如何重写 URL。但对于服务器 /home
或 /about
不存在。
但是我的问题是如何配置 pub
以便始终重定向到 index.html 以便我可以刷新并转发到子站点?是否有一些配置要添加到 pubspec.yaml?
或者添加
bootstrap(AppComponent, [
/* other providers */,
provide(LocationStrategy, useClass: HashLocationStrategy),
])
或者使用像Nginx这样支持重写的代理。 pub
本身不以任何方式支持它。
不要在路径“/”上使用斜杠。试试这个:
const userRoutes: Routes = [
{ path: 'home', component: HomeComponent, pathMatch: 'full' },
];