Как исправить маршрутизацию для приложения 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, я могу зайти в адресную строку в браузере и ввести адреса, например:
локальный:4200/ панель
локальный:4200/ приложение
и это прекрасно работает.
тогда я делаю:
ng build --base-href /deploy/ --prod
а затем скопируйте файлы из папки dist на моем локальном компьютере в хранилище BLOB-объектов Azure. У меня должен быть контейнер BLOB-объектов для файлов, и этот контейнер называется 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
и увидеть значок
Затем на CDN Verizon Edgecast я могу перейти к:
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/ следует перенаправить на страницу входа
Я использую Verizon Premium Edgecast CDN, поэтому я могу перезаписать URL, но написанные мною правила пока не работают.
Я что-то упускаю на угловой стороне? Какие-либо идеи правил перезаписи URL для Azure CDN или Edgecast?
Вот текущий способ, которым я пытался сделать перезапись URL для edgecast/Azure:
И затем вот варианты в выпадающем списке, который говорит "Всегда" на изображении выше:
ЕСЛИ варианты:
Всегда
Как номер
CDN Origin
IP-адрес клиента
Параметр Cookie
Происхождение клиента
Edge Cname
Ссылающийся домен
Запросите заголовок литерала
Заголовок запроса Regex
Метод запроса
Схема запроса
URL-путь
Расширение URL-пути
Url Path Имя файла
Url Path Literal
Url Path Regex
Подстановочный знак Url Path
Url Query Literal
Url Query Regex
Url Query Wildcard
1 ответ
Вы можете установить "Исходный путь" для "deploy", чтобы удалить путь "/deploy/" от необходимости в URL CDN.
Движок правил может начать работать до 90 минут. Убедитесь, что вы подождали достаточно долго, прежде чем пытаться это.
После добавления исходного пути правило перезаписи должно быть следующим. Правило 1: если всегда: Feature: URL Rewrite; Источник: "логин"; Назначение: index.html (в раскрывающемся списке выберите тот, который соответствует имени вашей конечной точки).