2017-01-31 3 views
-1

Ich bin neu in eckig, ich erstelle eine App mit angularJs (verwendet ngRoute für Routing) es funktioniert perfekt mit Links von einer Seite zu anderen, aber das Problem ist, wenn ich einfügen URL direkt oder bearbeiten Sie es für Browser-URL-Leiste den Browser zeigen "Diese Seite kann nicht gefunden werden" Ich habe $ locationProvider HTML4-Modus zum Entfernen von # von URL verwendet. also bitte hilf mir jemand ist es deswegen oder was?AngularJs Ansicht nicht laden, wenn ich direkt einfügen URL

hier ist meine Routen

angular 
.module("myApp", ["ngSanitize", "ngLoadingSpinner", "ngRoute"]) 
.config(function ($locationProvider, $routeProvider) { 

$routeProvider 
    .when('/' , { 
    templateUrl: "templates/index.tpl.html" 
}) 
    .when('/work' , { 
    templateUrl: "templates/work.tpl.html" 
}) 
    .when('/work/:id' , { 
    templateUrl: "templates/workDetail.tpl.html" 
}) 
    .otherwise({redirectTo:'/'}); 


$locationProvider.html5Mode(true); 

});

und URl aussehen wie dieses http://127.0.0.1:8080/work/1

+0

Können Sie posten Sie Ihre Routen zusammen mit der Probe url? –

+0

Codiert zu meiner Frage hinzugefügt. Bitte überprüfen Sie –

+0

Bruder bereits hinzugefügt. –

Antwort

1

Es klingt wie Sie für die Einrichtung Ihres Servers müssen ordnungsgemäß die Indexdatei dienen, wenn Sie direkt auf diesen Routen navigieren. Dies führt dazu, dass der Server die index.html selbst dann bedient, wenn Sie zu einer Nicht-Root-URL gehen.

Ein ähnliches Setup sollte funktionieren. (Angenommen, Sie sind mit Nginx) https://gist.github.com/calebwoods/5e88b5e323d55ad71195

Hinweis: dieser Block besonders:

location/{ 
    try_files $uri /index.html; 
} 
Verwandte Themen