【问题标题】:Browser is unable to retrieve JS files from WEB-INF folder浏览器无法从 WEB-INF 文件夹中检索 JS 文件
【发布时间】:2012-09-18 20:34:21
【问题描述】:

我的 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>

【问题讨论】:

    标签: tomcat servlets


    【解决方案1】:

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

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

    【讨论】:

    • 这是有道理的。我假设你在谈论一个文件夹? META-INF、WEB-INF 和 index.jsp 应该放在哪里?
    【解决方案2】:

    tomcat的部署结构

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

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      js/file.js
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 2015-12-26
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        相关资源
        最近更新 更多