我正在创建一个RESTful应用程序,Laravel 4作为后端,AngularJS作为前端。我想使用Angular的路由。
laravel中的 routes.php
设置如下(有一个组/ api,但没有必要)
Route::any('{all}', function ($uri) {
return View::make('index');
})->where('all', '.*');
我在Angular的路线是
$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
xampp中的DocumentRoot位于DocumentRoot "C:/xampp/htdocs/laravel/public"
(所以Laravel中的公用文件夹)
当我点击localhost/test
时,一切正常。但是当我尝试访问localhost/test/1
时,所有内容都会从Laravel视图加载为index.php
文件,如下所示。
有人解决这个问题吗?我应该在routes.php
创建正则表达式,它将保存每个(.js,.jpg,...)扩展名(我认为这不是一个好主意)?或者我应该更改.htaccess
文件?
答案 0 :(得分:0)
我在这个question中找到了一个解决方案,并将Laravel中丢失的路线更改为一个,一切都很好。
App::missing(function ($exception) {
return Redirect::to('/#/' . Request::path());
});
问题是
#
作为前缀。