Ich habe diese „allgemeine“ Route in Laravel5 und es ist für AngularJS (alle erhalten Anfragen umleiten zu Hause, die das HTML enthält, in dem AngularJS enthalten ist):Laravel Route manchmal feuert ein anderes
Route::get('{path?}', function() {
return view('home');
})->where('path', '.+');
Und bevor diese es der von API (Ajax):
Route::group([ 'prefix' => 'api' ], function() {
Route::resource('user', 'UserController');
});
Also zuerst gibt es "API" und nach "eckigen". Das Problem ist, dass oft, wenn ich die Seite aufrufen api/SOMETHING feuert die zweite Route (AngularJS) mit der HTML-Antwort anstelle der echten (die der Ressource, ein JSON), so schrieb ich dieses kleine "Hack ":
use Illuminate\Http\Request;
...
Route::get('{path?}', function(Request $request) {
if ($request->is('api/*'))
return redirect($request->fullUrl());
return view('home');
})->where('path', '.+');
Jetzt ist das Problem bei 95% gelöst, aber oft passiert es wieder nur bei der ersten Ladung.
Irgendeine Idee? Middleware/Vorher?
was müssen Sie über Routen bemerken ist die Reihenfolge wichtig ist, da es Sie haben 'Domain/admin/{Pfad?}' Dann 'Domain/admin/login', dann gehe zu Domain/admin/login in Ihrem Browser die erste Route wird immer fangen und nicht auf die gewünschte Route? Versuchen Sie also, 'php artisan route: list'zu laufen, um Ihre Routen und die Ausgabe zu sehen, um zu sehen, ob sich das auswirkt –
Das Problem ist, dass wenn ich zu/api/etwas gehe außer JSON und es in 95% der Fälle funktioniert, aber die anderen 5% der Route {Pfad?} wird aufgerufen. Seltsam. – Grork
Sie können Ihre komplette Routendatei posten, wie Sie es haben/wollen und wenn möglich, führen Sie auch php artisan route: list aus, könnte aber einfacher als eine ganze Routendatei zu lesen sein, anstatt sich aufzuteilen :-) –