tomcat无法访问javascript文件夹

时间:2016-02-11 17:12:54

标签: javascript angularjs tomcat servlets deployment

这是我的第一个问题,所以,任何帮助将不胜感激。 我正在尝试角度教程,当我部署测试脚本时,它无法找到(HTTP 404)。 我一直在寻找类似的问题,并尝试以下解决方案:this 但是,似乎都没有效果。 对我来说是路径问题,因为角度源指向外部源(https)并且其工作正常,但本地源不是。 我使用eclipse,使用tomcat 8和默认的servlet,只是那样。 我真的很想知道为什么会这样,感谢任何帮助。 这是我的网络结构。

web structure

的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';
});

1 个答案:

答案 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配置,而您无需付出额外的努力。