2016-05-30 10 views
0

Ich bin neu in CodeIgniter und ich habe einige Probleme mit seiner Routing-Konfiguration.CodeIgniter zeigt Seite ohne CSS anstelle von 404

Alles funktioniert gut, wenn ich Zugriff auf eine Seite, wie es

http://localhost/index.php/class/controller

Aber wenn ich einige zufällige Argumente

http://localhost/index.php/class/controller/randomStuff

hinzufügen sollte es zeigt die Seite ohne CSS oder die JS aber ich möchte eine 404 Fehlerseite anzeigen.

Hier ist meine route.php Datei

$route['stats'] = 'main/account'; 
$route['/'] = 'index.php'; 
$route['/(:any)'] = 'main/disperr'; //Tried this to solve the problem but doesn't work (disperr simply returns show_404()) 
$route['default_controller'] = 'main'; 
$route['all'] = 'main'; 
$route['404_override'] = 'errors/page_missing'; 
$route['translate_uri_dashes'] = FALSE; 

Vielen Dank im Voraus für Ihre Hilfe.

Edit: Vielen Dank für Ihre Antworten! Nach dem Routing der Seiten hatte ich immer noch das fehlende CSS-Problem. Da ich Zweig verwende, sendete ich die base_url() als Parameter an meine Sicht und fügte sie dem Pfad zu meinem CSS und JS hinzu. Es funktioniert jetzt.

Antwort

0

Sie die folgende URL plese kann

http://localhost/class/index.php/main

nach index.php müssen Sie Ihren Namen des Controllers geben (nicht Ordnernamen Controller)

+0

Danke, ich habe die Frage bearbeitet. –

0

Sie müssen folgen einige Regeln von der Dokumentationsseite. Routen, die Sie nach der Installation von CodeIgniter gefunden haben, müssen am Anfang stehen, damit Sie diese gefunden haben.

Sie müssen auf die Vorrangstellung achten, da die Regeln in der Reihenfolge gelesen werden, in der sie in der Datei definiert sind.

$route['all'] = 'main'; 
$route['stats'] = 'main/account'; 
$route['(:any)'] = 'main/disperr'; //Tried this to solve the problem but doesn't work (disperr simply returns show_404()) 

Wenn Sie (:any) Wildcard Platzhalter haben hat es am Ende der Datei sein, weil Sie alle spezifischen Routen überprüfen nicht passieren (: alle) die Regel, weil diese Regel für jede Route gültig ist (wie Name vorschlagen). Eine Slash-zu-Index-Route ist nicht erforderlich, da der Schrägstrich der Standard-Controller ist und bereits definiert ist. Routing zu index.php ist nicht gültig und Sie sollen nur zu 'controller_name/method_name/param1' oder ähnlichen Muster routen. Keine Notwendigkeit für Schrägstriche am Anfang, wie Sie sehen, entfernte ich diese. Vielleicht wird das CSS-Problem durch das Entfernen von Schrägstrichen vom Anfang der erstellten Routen gelöst, aber Sie müssen anderen Dokumentationsregeln folgen, die ich hier dargelegt habe. Ganze Seite lesen here.

Verwandte Themen