0

私の web.xml は: http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> TestStruts2

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>
        org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG
    </param-name>
    <param-value>
        /WEB-INF/tiles-defs.xml
    </param-value>
</context-param>

<listener>
    <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
</listener>   
<welcome-file-list>
    <welcome-file>/WEB-INF/Templates/Jsp/index.jsp</welcome-file>
</welcome-file-list>   

Spring と Tiles2.1 を使用しています。私のリソース フォルダーは /WEB-INF/Templates/Resources/ にあります。DispatcherServlet はすべて ("/") をマップするように設定されています。Tomcatには画像とcssが表示されないため、「Resources」フォルダー(画像、cssを含む)を除外したい。次のようなメッセージが表示されます: ,,No mapping found for ...."

4

1 に答える 1

2

画像、CSS などのリソースを WEB-INF から取り出します。「WEB-INF」は静的リソース用ではなく、プログラムコード(JSP、クラスファイル、ライブラリなど)を格納し、外部からのアクセスを防ぐために使用されます。リソースをプロジェクト アーカイブ (.war、.ear) に配置することはお勧めできません。これは、パッケージのデプロイが非常に重くなるためです。

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

あなたのdispatcherServletがリクエストをマッピングすることを意味しますhttp://host/applicationName/ *

Java アプリケーションから独立して、ホストの vhost/host.com/httpdocs/images にリソースを配置できます。いう:

http://ホスト/myimages/

テンプレート (jsps) から比較的アクセスしやすい

<img src="/myimages/myicon.png"/>

したがって、パッケージは小さくなり、迅速にデプロイできます;)

于 2011-10-06T11:43:06.623 に答える