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とjavascriptを取得できませんでした。

ただし、ブラウザに入れるhttp://localhost/MyProject/resources/index.htmlと、すべてが正しく表示されます。

したがって、問題は、/resources/index.html などで指定されたパスとして URL でウェルカム ページを提供するにはどうすればよいかということです<welcome-file>

で実行できない場合は<welcome-file list>、他の構成可能な方法を使用する必要があります。

私は、別の html を追加したり、サーブレット コントローラーでプログラムによってリダイレクトしたりして、/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+ でのみ機能し
ます - ファイルの名前を「.html」ではなく「.jsp」にすることをお勧めします...マッピングが簡単です。

于 2012-07-27T04:43:36.363 に答える