1

我的 WEB-INF 文件夹中有一个文件夹“js”,它包含 javascript 文件。我无法让服务器使用 url localhost:8084/appname/js/file.js 检索它们,但我的 web.xml 文件中定义的所有其他内容都可以正常工作。

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>

   <servlet>
        <servlet-name>MeasurementNodesController</servlet-name>
        <servlet-class>com.mycompany.MeasurementNodesController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MeasurementNodesController</servlet-name>
        <url-pattern>/MeasurementNodes</url-pattern>
    </servlet-mapping>

    <resource-ref>
        <res-ref-name>jdbc/datasource</res-ref-name>
        <res-ref-type>javax.sql.DataSource</res-ref-type>
    </resource-ref>

    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>
4

3 回答 3

5

WEB-INF 文件夹中的任何内容对外界都是不可用的。WEB-INF 仅在 Forwards 等内部可用。

您需要将 JS 移出 WEB-INF 才能使用它。

于 2012-09-18T20:37:51.957 回答
0

tomcat的部署结构

您最终将在应用程序的“文档根”目录中获得以下内容:

* .html、*.jsp 等 - HTML 和 JSP 页面,以及应用程序的客户端浏览器必须可见的其他文件(例如JavaScript、样式表文件和图像)。为这些文件只维护一个目录通常要简单得多。

/WEB-INF/web.xml - 这是一个 XML 文件,描述构成应用程序的 servlet 和其他组件,以及任何初始化参数和容器管理的安全约束。

/WEB-INF/classes/ - 此目录包含应用程序所需的任何 Java 类文件(和相关资源)。

/WEB-INF/lib/ -此目录包含 JAR 文件,其中包含应用程序所需的 Java 类文件(和相关资源),例如第三方类库或 JDBC 驱动程序。

于 2012-09-18T21:39:28.770 回答
0

已经回答了这个问题,但我提供了视觉细节......WEB-INF外部世界无法访问其中的文件,只能由您的应用程序本身访问。

您需要将您的公共静态资产放在您的战争文件的顶层,例如,

js/file.js

为了检索,您可以执行以下操作:

<script src="js/file.js"></script>

在此处输入图像描述

于 2019-05-22T09:29:44.180 回答