Краткое изложение Ember-CLI, использующее его с Laravel или другими серверными фреймворками

#javascript #ember.js #laravel #laravel-4 #ember-cli

#javascript #ember.js #laravel #laravel-4 #ember-cli

Вопрос:

Используя ember-starter-kit все, что мне нужно было сделать, это поместить его содержимое в /my_laravel_app/public папку, и все было в порядке.

Теперь я пытаюсь создать проект с laravel и ember-cli

Я немного запутался относительно того, как мне нужно структурировать мое приложение? В какой папке laravel я должен запускать ember new my-app команду? Кроме того, как я могу использовать apache для тестирования своего ember-cli приложения вместо использования ember server command, поскольку мне нужно протестировать его с помощью моих API, созданных laravel.

Любая помощь очень ценится!

Ответ №1:

Вот один из способов сделать это

Зайдите в свою корневую laravel папку и запустите ember new my_app_name

Затем зайдите в свою my_app_name папку и создайте новый файл build_custom.sh , добавьте в файл следующие строки

 ember build
cp dist/index.html ../app/views/ember.php
cp -r dist/assets ../public/assets
  

Объяснение: в первой строке создается ваше приложение ember-cli и генерируются все необходимые файлы в dist/ папке. Вторая строка копирует сгенерированный index.html файл в app/views/ папку и переименовывает его ember.php , чтобы laravel мог его распознать. Последняя строка просто копирует все ресурсы в вашу общую папку laravel

Вы можете добавить следующее в свой app/routes.php файл в laravel для обслуживания вашего приложения ember. Убедитесь, что он находится в самом низу, чтобы предпочтение отдавалось другим маршрутам api

 Route::get('{ember?}', function() {
    return View::make('ember');
})->where('ember', '.*'); 
  

Так и должно быть, все должно работать так, как задумано. Удачи.

Комментарии:

1. Я все еще получаю, UnrecognizedURLError: /ember когда я перехожу к ember маршруту в моем приложении laravel. Похоже, это связано с настройками rootUrl приложения ember.

2. у меня это не работает. Ни ember.php создается, и ресурсы не перемещаются. Помощь Ant была бы высоко оценена.

3. @Nouphal.M ты пробовал запускать $ bash build_custom.sh из каталога my-app-name?

4. Работает как шарм. Просто нужно быть осторожным, чтобы эти две строки копировали нужные файлы в нужные места: cp dist/index.html ../app/views/ember.php amp; cp -r dist/assets ../public/assets В моем случае ресурсы копировались в /public/assets/assets папку. И поэтому выдавало UnrecognizedURLError: /ember . Однажды я исправил путь. Все работало нормально

Ответ №2:

Вот еще один способ сделать это:

Вы можете создать две отдельные папки: backend (приложение laravel) и frontend (приложение ember) . Допустим, ваше приложение laravel запущено под 192.168.10.10 , затем вы можете прокси-серверить ajax-запросы вашего приложения ember app с помощью команды ember-cli: ember serve --proxy http://192.168.10.10 . Используя эту опцию прокси, все команды будут передаваться на ip-адрес, указанный с помощью опции —proxy — в данном случае IP-адрес, на котором запущено приложение laravel (где api прослушивает).

Ответ №3:

Если вы получаете UnrecognizedURLError: /ember , попробуйте удалить welcome route в laravel…