Я создаю приложение RESTful с Laravel 4 как backend и AngularJS как интерфейс. Я хочу использовать маршрутизацию из Angular.Проблема маршрутизации с Laravel 4 и AngularJS в html5Mode
routes.php
в Laravel настроены так (с одной группой/API, но не обязательно)
Route::any('{all}', function ($uri) {
return View::make('index');
})->where('all', '.*');
Мои маршруты в угловому являются
$routeProvider.
when('/', {
templateUrl: 'views/test.html',
controller: 'homeCtrl'
}).
when('/test', {
templateUrl: 'views/test.html',
controller: 'homeCtrl'
}).
when('/test/:id', {
templateUrl: 'views/test.html',
controller: 'homeCtrl'
}).
otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
Я определил <base href="/"/>
в index.php
И мой DocumentRoot в xampp находится в DocumentRoot "C:/xampp/htdocs/laravel/public"
(так что общая папка в Laravel)
Когда я ударил localhost/test
все работает нормально. Но когда я пытаюсь получить доступ к localhost/test/1
, все загружается как файл index.php
из изображений Laravel, как вы можете видеть ниже.
ли кто-нибудь решить эту проблему? Должен ли я создать регулярное выражение в routes.php
, которое будет содержать все расширения (.js, .jpg, ...) (я думаю, что это не очень хорошая идея)? Или мне нужно изменить файл .htaccess
?
https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode. Laravel специально не указан, но вы должны иметь представление о том, как настроить его на основе других примеров. – Claies
@Claies, это не проблема в '$ locationProvider.html5Mode (true);' (я прокомментировал это с тем же результатом), я думаю. –
также, возможный дубликат http://stackoverflow.com/questions/21357258/angularjs-and-laravel-4-routing-conflict-in-html5-mode?rq=1 – Claies