2017-01-31 5 views
2

Есть несколько похожих вопросов, но я пока не нашел решения для решения этой проблемы.Dart/Angular 2: Pub serve 404 на странице reload

Давайте предположим, что я использую

паб служить --port 13371

для того, чтобы начать свое Угловое приложение 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. Всякий раз, когда я нажимаю , перезагрузите сейчас я получаю ошибку .

Причиной этого является конфигурация сервера. Когда угловой изменяет URL-адрес, он знает, куда идти и как переписать URL-адрес. Но для сервера /home или /about не существует.

Однако мой вопрос заключается в том, как настроить pub, чтобы перенаправлять всегда на index.html, чтобы я мог обновлять и пересылать на субсайт тогда? Есть ли какая-то конфигурация для добавления в pubspec.yaml?

ответ

3

Либо добавить

bootstrap(AppComponent, [ 
    /* other providers */, 
    provide(LocationStrategy, useClass: HashLocationStrategy), 
]) 

или использовать прокси-сервер, как Nginx, который поддерживает перезапись. pub сам по себе не поддерживает его.

Смотрите также https://pub.dartlang.org/packages/pub_serve_rewrites

0

Не используйте косую черту на вашем пути "/". Попробуйте следующее:

+0

Это не относится к маршрутизатору, используемому в Dart Angular 2/3. –

Смежные вопросы