2015-06-06 19 views
6

Sto sviluppando un progetto utilizzando Laravel 5 e AngularJS. Voglio abilitareLaravel 5 + AngularJS html5Mode

$locationProvider.html5Mode(true); 

e interrompere la pagina dal ricaricamento. La pagina non si ricarica quando l'ho impostata su false e visito un link.

Ecco il mio route.php

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

codice angolare

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); 
}); 

Quando visito un collegamento html5Mode(false) localhost:8000/#/ -> localhost:8000/#/feed la pagina non si aggiorna

Quando html5Mode(true) e visito localhost:8000/ -> localhost:8000/feed, la pagina si aggiorna e ottengo questa e rror:

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

+0

Puoi condividere più del tuo codice angolare? come è configurato il tuo percorso e se hai cose come target = "_ self" nel tuo link? Il lato PHP potrebbe non essere il problema – n00b

+0

L'ho incluso ora – user2595818

+0

Si prega di spiegare i problemi in modo più dettagliato. Non chiaro cosa intendi con 'non ricarica ' – charlietfl

risposta

5

ho cambiato route.php a

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


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

E ha aggiunto una base <base href="/"> al mio index.php Tutto funziona ora e la pagina non si aggiorna.

+0

usando 'Route :: get ('{all}')' è una pratica molto pericolosa, può portare a bug sottili come la richiesta di un file javascript e la visualizzazione dell'indice. dovresti prendere in considerazione l'utilizzo di "App :: missing" invece, poiché questo verrà attivato solo su rotte che non hanno già una corrispondenza con una rotta o risorsa definita. – Claies

+1

Ho letto che '' '' App :: missing'''' non è disponibile in laravel 5 – user2595818

+0

Penso che in questo approccio non sia possibile risolvere 404 pagine di errore. questa risposta ha funzionato per me con un piccolo cambiamento: http://stackoverflow.com/questions/16569841/reloading-the-page-gives-wrong-get-request-with-angularjs-html5-mode#answer-25961313 – ivahidmontazer