0

我的 web.xml 包含

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>
      resources/index.html
    </welcome-file>
  </welcome-file-list>
</web-app>

resources/index.html 引用了其他静态资源,如图像、js、css 等,通过相对路径存储在resoruces目录中。

当我放入http://localhost/MyProject/浏览器时,它显示了 index.html 但没有得到 css 和 javascripts。

但是,如果我放入http://localhost/MyProject/resources/index.html浏览器,一切都会正确显示。

所以,问题是如何让欢迎页面作为 url 中给出的路径提供<welcome-file>,例如 /resources/index.html。

如果不能在 中完成<welcome-file list>,我应该使用什么其他可配置的方法。

我倾向于不通过添加另一个 html 或在 Servlet 控制器中以编程方式来重定向到 /resources/index.html。

4

1 回答 1

1

您似乎正在使用 Spring 并且遇到静态内容问题。

尝试查看此链接

它解释了在这种情况下如何进行......

注意线路:

<mvc:resources mapping="/resources/**" location="/resources/" />

它将您的资源文件夹(包含 css、javascript 和图像文件)映射到 Spring 的特殊处理程序。

更新:

在您的 servlet-context.xml 文件中,您可以添加这一行

<!-- Forwards requests to the "/" resource to the "welcome" view -->
    <mvc:view-controller path="/" view-name="index"/>

<!-- Resolves view names to protected .html resources within the /WEB-INF/resources/ directory -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/resources/"/>
        <property name="suffix" value=".html"/>
    </bean>

这表示您不必正确使用“index.jsp”。这样,您会将视图映射到“/”访问。总而言之,这样用户输入' http://localhost/MyProject/ '并看到你的index.html并看到css和javascripts的效果。

PS.: - 此配置仅适用于 Spring 3+
- 更喜欢将文件命名为“.jsp”而不是“.html”...映射更简单。

于 2012-07-27T04:43:36.363 回答