2015-06-06 2 views
6

Я разрабатываю проект, используя Laravel 5 и AngularJS. Я хочу включитьLaravel 5 + AngularJS html5Mode

$locationProvider.html5Mode(true); 

и остановите страницу при перезагрузке. Страница не перезагружается, когда я устанавливаю ее в false и перехожу к ссылке.

Вот мой route.php

Route::get('/', function() { 
    return View::make('index'); 
}); 

Угловой код

app.config(function($routeProvider, $locationProvider) { 
    $routeProvider.when('/', { 
     templateUrl: 'views/feed.html', 
     controller: 'fdController' 
    }).when('/collections', { 
     templateUrl : 'views/collections.html', 
     controller: 'clController' 
    }).otherwise({ 
     redirectTo : '/' 
    }); 

    $locationProvider.html5Mode(true); 
}); 

Когда я посещаю ссылку html5Mode(false) localhost:8000/#/ -> localhost:8000/#/feed страница не обновляется

Когда html5Mode(true) и я захожу localhost:8000/ -> localhost:8000/feed, страница обновляется, и я получаю это e rror:

Sorry, the page you are looking for could not be found.

+0

Вы можете поделиться своим Угловым кодом? как настроен ваш маршрут, и если у вас есть такие вещи, как target = "_ self" в вашей ссылке? Возможно, проблема с PHP не связана с проблемой – n00b

+0

. Я включил ее сейчас. – user2595818

+0

Пожалуйста, объясните вопросы более подробно. Не понятно, что вы подразумеваете под 're not reload' – charlietfl

ответ

5

Я изменил свое route.php к

Route::get('/', function() { 
    return View::make('index'); 
}); 


Route::get('{all}', function() { 
    return View::make('index'); 
}); 

И добавил базу <base href="/"> на мой index.php Все теперь работает и страница не обновляется.

+0

с использованием 'Route :: get ('{all}')' очень опасная практика, это может привести к тонким ошибкам, например, запросить файл javascript и получить ваш индексный указатель. вам следует вместо этого использовать 'App :: missing', так как это будет срабатывать только на маршрутах, которые еще не соответствуют определенному маршруту или ресурсу. – Claies

+1

Я читал, что '' '' App :: missing'''' недоступен в laravel 5 – user2595818

+0

Я думаю, что в этом подходе вы не можете разрешить 404 страницы ошибок. этот ответ сработал для меня с небольшим изменением: http://stackoverflow.com/questions/16569841/reloading-the-page-gives-wrong-get-request-with-angularjs-html5-mode#answer-25961313 – ivahidmontazer

Смежные вопросы