【发布时间】:2016-05-03 08:02:32
【问题描述】:
所以,我对 AngularJS 还是很陌生,我正在尝试在我的应用程序中使用 AngularJs ngRoute。
当我在应用程序主页启动时,一切顺利:
http://localhost:8080/appName/
当我从这一点开始点击链接时,它可以顺利运行。
但是,当我输入一个我知道存在/有效的 URL 时,它会给我一个 404 错误。如果我通过使用应用程序而不是 url 转到该链接,它加载正常,即使它具有相同的 url。
Eg. http://localhost:8080/appName/search
将给出 404,即使这是默认重定向的相同 url。
确实,通过键入位置来加载的唯一 url 是我上面提到的基本 URL。
我的 app.js 看起来像这样:
app.config( ['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
$routeProvider
.when("/search", {
templateUrl: "search.html",
controller: "SearchController"
})
.when("/results", {
templateUrl: "results.html",
controller: "ResultsController"
})
.when("/browse", {
templateUrl: "browse.html",
controller: "BrowseController"
})
.otherwise({redirectTo:"/search"});
//This gets rid of the # on the urls to the templates
$locationProvider.html5Mode(true);
}]);
我将它托管在 glassfish4 服务器上。
关于 ngRoute 的工作原理,我是否有明显的遗漏/误解?是否有一些我缺少的设置?
感谢所有帮助...
编辑 1: 正如下面的@Matthew Green 所说,我需要配置网络服务器以返回下面所有页面的 index.html
http://localhost:8080/appName
我知道我在这里完全密集,但是这是在哪里配置的?我将代码托管在 MAVEN Jersey-Quickstart-Webapp 中。
【问题讨论】:
-
我认为我们需要更多信息——至少 $routeProvider 配置和您正在使用的特定 url。
-
我已经更新了问题以显示基本的 $routeProvider 设置,以及有问题的 url