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'));
});