Angular 2 RC4 не может перейти на страницу, набрав URL-адрес в адресной строке

Я только что обновил свой проект до версии rc 4 и получил проблему.

Когда я использую systemjs для настройки своего проекта, все в порядке.

Когда я запускаю проект с веб-пакетом (я использую https://github.com/AngularClass/angular2-webpack-starter), проект был запущен успешно, никаких ошибок. Я могу перейти к каждой ссылке, которая была сконфигурирована [routerLink].

Но с той же ссылкой, если я наберу URL-адрес в адресной строке браузера. Там ничего не случилось. Мое приложение ничего не загружало. Вот скриншот из моего проекта:

Скриншот

Может кто-нибудь мне помочь? Я вам большое спасибо.

2 ответа

Решение

Это должно быть обработано вашим внутренним сервером.

Вам необходимо отправить все запросы на страницу индекса, чтобы Angular мог принять запрос и оттуда решить маршрут.

Происходит следующее: когда вы посещаете свою индексную (/) страницу, Angular вступает во владение, и когда вы нажимаете [routerlink], она притворяется, что изменяет страницу в браузере (на самом деле она ничего не делает с сервером). Когда вы посещаете любую страницу, которая не является индексом, вводя URL-адрес, вы не загружаете свое приложение Angular и, следовательно, оно не может редактировать маршруты в браузере. Переправляя все маршруты в индекс, мы позволяем Angular решать, как следует обрабатывать все маршруты, а не сервер.

Если вы обслуживаете контент JS. Добавьте этот код для экспресс-маршрута

var path = require('path')

app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname + '/static/index.html'));
});
Другие вопросы по тегам