这是我的第一个问题,所以,任何帮助将不胜感激。 我正在尝试角度教程,当我部署测试脚本时,它无法找到(HTTP 404)。 我一直在寻找类似的问题,并尝试以下解决方案: 但是,似乎都没有效果。 对我来说是路径问题,因为角度源指向外部源(https)并且其工作正常,但本地源不是。 我使用eclipse,使用tomcat 8和默认的servlet,只是那样。 我真的很想知道为什么会这样,感谢任何帮助。 这是我的网络结构。
的web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/js/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
我的HTML:
<!DOCTYPE html>
<html>
<head>
<title>AngularJS Controllers</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.min.js"></script>
<script type="text/javascript" src="/js/app.js"></script>
</head>
<body>
<div ng-app="app">
<h1>Controllers</h1>
<div ng-controller="MainCtrl">
<p> {{ message }} </p>
</div>
</div>
</body>
</html>
我的.js
angular.module('app', []);
angular.module('app').controller('MainCtrl', function ($scope){
$scope.message = 'hello';
});
答案 0 :(得分:2)
根据您的评论,此处发生的最可能的事情是您的网络应用程序在非ROOT上下文路径中运行。例如。 http://localhost:8080/myapp/
。如果是这样,则应将上下文路径添加到/js/app.js
,例如/myapp/js/app.js
。或者,您可以使用相对URL从索引页面引用它。即。 js/app.js
(删除前导斜杠)。
另外,我建议从<servlet>
中删除问题中显示的所有<servlet-mapping>
和web.xml
元素。 Tomcat已经为您提供了所需的所有默认servlet配置,而您无需付出额外的努力。