Ich habe ein Projekt mit Spring und Angular JS. Wenn ich die ungly zu entfernen versuchen "/ # /", gefolgt ich folgende Tutorial:Spring und Angular JS HTML5 Modus mit abstrakten Routing
in meinem Index html-Datei:
<base href="/">
in meinem AngularJS config:
app.config(
function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider.otherwise("/");
.state('business', {
abstract: true,
url: "/",
templateUrl: "business/businessView"
})
.state('business.intro1', {
url: "/intro1",
templateUrl: "business/page-1",
})
$locationProvider.html5Mode({enabled: true)};
}
);
Also Um Ressource zu unterstützen, fügte ich folgenden JAVA-Code zu meinem Federcontroller
01 hinzu@RequestMapping(value = "/{[path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
@RequestMapping("/business/**")
public String returnBusinessHtml() {
String uri = request.getRequestURI().substring(request.getContextPath().length());
return uri;
}
und erfolgreich vermieden 404 Problem beim direkten Zugriff URL.
Alles sucht jetzt gut, aber wenn ich eine URL zum abstrakten Controller von AngularJS hinzufügen:
.state('business', {
abstract: true,
url: "/business",
templateUrl: "business/businessView"
})
die 404 Ausgabe kam wieder heraus, als ich versuchte localhost:8080/business/intro1
zuzugreifen.
Wenn ich andere Seite wie localhost:8080/businessLanding
versuche, ist es OK.
Vielleicht kam das Problem von @RequestMapping(value = "/{[path:[^\\.]*}")
dieser reguläre Ausdruck? Bitte helfen Sie, danke!