2016-10-07 2 views
1

После часовых углов я успешно создал вспомогательные дочерние маршруты, которые я сделал повторно используемыми во всем приложении. Вроде.Угловой 2 вспомогательный маршрутизатор имеет ошибку при перезагрузке браузера

Вспомогательные маршруты прекрасно работают при начальной загрузке страницы, и они действительно влияют на историю браузера. Однако, если я перезагружаю URL (или включаю вспомогательные ссылки в начальную загрузку), я получаю файл, не найденный error для main.js.

Причина ошибки очевидна, потому что я могу ясно видеть, что мое приложение пытается получить http://*RootDirectory*/*CurrentURL*/*AppDirectory*/main.js.

Приложение по какой-либо причине считает, что CurrentURL является RootDirectory, когда он пытается загрузить main.js. Первоначально он также не загружал все мои связанные файлы с index.html, но я исправил это, изменив их пути, чтобы обратиться к моему корню сайта.

Я предполагаю, что я мог бы решить эту проблему с помощью main.js таким же образом, но я не могу понять, где этот неправильный относительный путь, потому что Angular2 (при всей его славе) отсасывает прямую кишку при предоставлении когерентных сообщений об ошибках!

Вот то, что я уже пробовал:

  • меняет OUTDIR абсолютного пути в TSconfig.

  • Изменение основного пакета приложения до абсолютного пути в моей конфигурации systemjs.

  • Вспоминая, что еще я уже пробовал.

  • Выпрыгивая из окна моего офиса.

kThxBye

ответ

1

Вы можете решить эту проблему легко путем внедрения HashLocationStrategy, который добавляет # ко всем маршрутам, так http://RootDirectory/CurrentURL становится http://RootDirectory/#/CurrentURL. Это достигается путем добавления HashLocationStrategy к AppModule поставщиков:

{ provide: LocationStrategy, useClass: HashLocationStrategy } 

Вам нужно импортировать LocationStrategy и HashLocationStrategy из @angular/common:

import { LocationStrategy, HashLocationStrategy } from '@angular/common'; 

Вы можете прочитать больше об этом here.

+0

Спасибо за очень быстрый ответ! Он отлично работал. Но теперь, как я снова делаю URL-адреса? – Smaft

+0

@ Смафт Я не уверен, я знаю, что вам нужно изменить конфигурацию вашего сервера, но не знаете, что именно. –

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