Мы разрабатываем расширение Chrome с использованием Ember CLI, но с трудом получаем маршруты/ресурсы, чтобы хорошо играть с Chrome, так как маршрут . маршрут не запускается правильно.Как настроить маршруты Ember в расширении Chrome?
Шаги, которые мы предприняли:
- Создать приложение по умолчанию с помощью CLI Ember:
ember new myapp
. - Мы не определяем какие-либо маршруты, так как мы должны получить генерируемый нами индекс.
ember build --environment production
.- Положить manifest.json файл для определения расширения в dist/ папка.
- В Chrome мы загружаем распакованное расширение ... 'и указываем на папку dist/.
Обычно, если приложение Ember был размещен на сервере, где будет Ember служит применение, как hxxp: // локальный: 4200/, загрузит приложение и все маршруты будут висеть от этого.
Однако, как это расширение Chrome, он не загружает index.html при использовании пустого маршрута, такой, что собирается хром-расширений: // (EXTENSION_ID)/ выдает ошибку ' Эта веб-страница не найдена «, поскольку я полагаю, что Chrome не перенаправляет на index.html по умолчанию.
Если указать расширение на хром-расширения: // (EXTENSION_ID)/index.html он загружает приложение Ember, но угасающий выдает ошибку:
Uncaught UnrecognizedURLError: /index.html
Один путь вокруг это определить index.html
маршрут в маршрутизаторе, как показано ниже, но это не является идеальным:
Router.map(function() {
this.resource('index', { path: '/index.html' });
});
в качестве альтернативы, вы можете изменить тип расположения в «хэш»:
locationType: 'hash'
В этом случае это позволит перейти к index.html без дополнительного маршрута выше, но как тогда маршруты могут отвиснуть от этого? Например, переход на chrome-extension: // (extension_id)/some_other_action никогда не заставит приложение Ember загружаться в первую очередь.
Вопрос: Как можно объявить маршруты Ember в расширении Chrome?