Используйте навсегда с Ember-CLI

Я создал веб-сайт с помощью Ember-CLI, и теперь он готов к работе, поэтому мы ищем способ поддерживать его постоянную работу.

Прямо сейчас мы используем $ ember serve --port 80.

но, очевидно, это работает только тогда, когда мы вошли в систему. Раньше я использовал Forever, чтобы приложение node работало, но я не уверен, как заставить это работать с Ember CLI, поскольку команда «ember serve» явно делает больше, чем просто запуск app.js?

Любой вклад будет оценен!


person James Gupta    schedule 10.08.2014    source источник


Ответы (1)


Приложения Ember-CLI НЕ являются приложениями узла, это приложения браузера, поэтому вам не нужно ничего особенного для их обслуживания. Чтобы приложение Ember-CLI работало постоянно, я предлагаю сделать следующее:

ember build --environment=production

Это выполнит необходимые шаги сборки, чтобы код работал в браузерах (например, транспиляция модулей ES6), и поместит код в папку сборки. Это также минимизирует файлы JS и отпечатки всех ресурсов (это происходит только в рабочей среде).

Все, что вам нужно сделать, это поместить файлы в папку dist/ на веб-сервере.

Я предлагаю Apache или Nginx, но все будет работать.

Изменить

Как указал Омаир Вайяни, это может не работать на некоторых серверах, потому что Ember-CLI использует locationType: 'auto', который по умолчанию равен 'history'. Чтобы это работало, вы должны настроить свой СЕРВЕР для обслуживания приложения ember со всех маршрутов.

То, что я делаю, и сервер меня хорошо, потому что у меня нет контроля над сервером, заключается в том, чтобы просто изменить locationType на «хэш», который будет генерировать URL-адреса с хэшами (http://myemberapp/#/myroute/myid) и будет работать с любым сервером. Просто отредактируйте файл environment.js соответствующим образом:

module.exports = function(environment) {
   var ENV = {
      /* other stuf ... */
      locationType: 'hash',
      /* other stuf ... */
   },
   /* other stuff */

```

person Paulo Schreiner    schedule 10.08.2014
comment
Ах, это имеет больше смысла, спасибо! Попробую это позже сегодня вечером - person James Gupta; 10.08.2014
comment
ember-cli использует экспресс на узле для обработки маршрутизации перед загрузкой веб-сайта. Таким образом, этот метод приводит к ошибке 404, если вы пытаетесь получить прямой доступ к неиндексному маршруту. Любые предложения для этого @jorjao81 - person Omair Vaiyani; 10.08.2014
comment
@OmairVaiyani Я просто использую тип местоположения «хеш» вместо «авто». В файле ember environment.js внесите изменения: locationType: 'auto' на locationType: 'hash', Это создаст URL-адреса с решеткой и будет работать с ЛЮБЫМ веб-сервером (я развертываю на amazon S3). Вы можете настроить другие серверы для работы с автоматическим типом местоположения по умолчанию, если вы действительно хочу - person Paulo Schreiner; 11.08.2014
comment
@ jorjao81 jorjao81 Я избегаю использования хеш-местоположений, если они вызывают проблемы с SEO. Вместо этого мы нашли следующие правила apache или nginx, которые, кажется, помогают: iamstef .net/ember-app-kit/guides/deployment.html - person Omair Vaiyani; 12.08.2014
comment
Вау, этот вопрос действительно помогает, спасибо. Потому что я использую PHP Slim в качестве бэкэнда и действительно нуждаюсь в xampp для его размещения вместо использования Node в качестве веб-сервера. - person jumper rbk; 08.09.2014