有一些类似的问题,但我还没有找到解决这个问题的方法。
让我们假设我使用
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
。每当我按重新加载时,我都会收到 404错误。
原因是服务器配置。当angular更改URL时,它知道要去哪里以及如何重写URL。但是,对于服务器/home
或/about
不存在。
但是我的问题是如何配置pub
以便始终重定向到index.html,以便我可以刷新并转发到子网站呢?是否有一些配置要添加到pubspec.yaml?
答案 0 :(得分:4)
添加
bootstrap(AppComponent, [
/* other providers */,
provide(LocationStrategy, useClass: HashLocationStrategy),
])
或使用支持重写的Nginx等代理。 pub
本身并不以任何方式支持它。
答案 1 :(得分:0)
不要在路径“/”上使用斜杠。试试这个:
const userRoutes: Routes = [
{ path: 'home', component: HomeComponent, pathMatch: 'full' },
];