#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…