как исправить маршрутизацию для приложения Angular 2 с помощью Edgecast Azure CDN?

Для моего приложения Angular вот файл app.routing.ts:

const appRoutes: Routes = [
    { path: '', component: LoginComponent },
    { path: 'dashboard', component: DashboardComponent },
    { path: 'application', component: ApplicationComponent },
    { path: 'decision', component: DecisionComponent },
];

export const routing = RouterModule.forRoot(appRoutes);

поэтому на моем локальном компьютере, когда я выполняю ng serve, я могу перейти в адресную строку в браузере и ввести такие адреса, как:

localhost: 4200 / панель управления

локальный: 4200 / приложение

и это отлично работает.

тогда я делаю:

ng build --base-href /deploy/ --prod

а затем скопируйте файлы из папки dist на моем локальном компьютере в хранилище BLOB-объектов Azure. Мне нужен контейнер больших двоичных объектов для файлов, и этот контейнер называется deploy. Я получаю что-то вроде:

https://xxyz.blob.core.windows.net/deploy/favicon.ico
https://xxyz.blob.core.windows.net/deploy/index.html
https://xxyz.blob.core.windows.net/deploy/assets/Logo.svg
https://xxyz.blob.core.windows.net/deploy/main.68dbes8ef20.bundle.js
https://xxyz.blob.core.windows.net/deploy/styles.a2b9daa6d36.bundle.css

и т. д. и т. д. и я могу перейти на:

https://xxyz.blob.core.windows.net/deploy/favicon.ico

и увидеть значок

Затем в сети Verizon Edgecast CDN я могу перейти по адресу:

https://xxyz.com/deploy/index.html, чтобы запустить мое приложение и войти в систему.

Но я не хочу переходить на https://xxyz.com/deploy/index.html в CDN для входа.

Я хочу пойти в

https://xxyz.com/login и войдите в систему.

Кроме того, я также не могу перейти в эти места на CDN:

https://xxyz.com/deploy/dashboard

https://xxyz.com/deploy/application

И что мне действительно нужно, так это иметь возможность делать это из CDN:

https://xxyz.com/login

https://xxyz.com/dashboard

https://xxyz.com/application

а также

https://xxyz.com/ должен перенаправлять на страницу входа

Я использую Verizon Premium Edgecast CDN, поэтому я могу выполнить перезапись URL, но правила, которые я написал, пока не работают.

Мне что-то не хватает на стороне Angular? Есть идеи относительно правил перезаписи URL-адресов для Azure CDN или Edgecast?

Вот текущий способ, которым я пытался перезаписать URL-адрес для Edgecast / Azure:  введите описание изображения здесь

И затем вот варианты в раскрывающемся списке с надписью «Всегда» на изображении выше:

Параметры ЕСЛИ:

Всегда

Как число

Источник CDN

IP-адрес клиента

Параметр cookie

Происхождение клиента

Edge Cname

Ссылающийся домен

Литерал заголовка запроса

Регулярное выражение заголовка запроса

Метод запроса

Схема запроса

Каталог URL-адресов

Расширение пути URL

Путь к URL-адресу Имя файла

Литерал пути URL

Регулярное выражение пути URL

Подстановочный знак пути URL

Литерал запроса URL

Регулярное выражение URL-запроса

Подстановочный знак запроса URL


person user372225    schedule 30.05.2017    source источник
comment
Не могли бы вы поделиться с нами правилами, которые вы написали, чтобы мы могли лучше предложить помощь?   -  person Aaron Chen    schedule 31.05.2017
comment
@ AaronChen-MSFT Я поделился правилами в виде изображения. Благодарность!   -  person user372225    schedule 31.05.2017
comment
Я перешел на использование службы приложений Azure вместо того, чтобы размещать Azure CDN поверх хранилища BLOB-объектов Azure. В службе приложений такую ​​перезапись легко выполнить с помощью файла web.config.   -  person user372225    schedule 24.07.2017
comment


Ответы (1)


Вы можете установить «Исходный путь» для 'deploy', чтобы удалить путь '/ deploy /' из необходимости в URL-адресе CDN.

исходный путь лазурный

Для начала работы обработчика правил может потребоваться до 90 минут. Убедитесь, что вы подождали достаточно долго, прежде чем попробовать.

После добавления пути к источнику правило перезаписи должно быть следующим. Правило 1. Если всегда: Функция: перезапись URL; Источник: «логин»; Назначение: 'index.html' (из раскрывающегося списка выберите тот, который соответствует имени вашей конечной точки).

person Richard Li - MSFT    schedule 31.05.2017
comment
Для отображения корневого пути вы можете сделать это. Функция: перезапись URL; Источник: '/', место назначения: 'index.html' - person Richard Li - MSFT; 31.05.2017
comment
Если вы посмотрите на изображение, которое я прикрепил как часть своего вопроса, вы можете увидеть часть «ЕСЛИ», а затем раскрывающийся список рядом с ним с надписью «Всегда». Я посмотрел в раскрывающемся списке, где написано «Всегда», но я не вижу ничего, что могло бы выполнить ваше предложение установить «Путь к источнику» на «развертывание». Я просто добавил другие параметры в дополнение к «Всегда» выше. Есть идеи, какой из них использовать? - person user372225; 01.06.2017