0

Maven を使用し、Spring MVC を使用して実装されていない JSP/サーブレット ベースの Web アプリケーションがあります。webapp-runnerを使用して、組み込みの tomcat コンテナーにデプロイしようとしています。

問題は、css/js および JSP からの他のアセット参照がそれらのリソースをロードしないことです。を使用してアプリケーションを起動するとjava -jar target/dependency/webapp-runner.jar target/myapp.war、 を使用してページにアクセスできますhttp://localhost:8080/index.jsp。ただし、リソースは存在しませんhttp://localhost:8080/assets/css/sample-css.css(例参照)。

私が考えている「webcontext」がまったくないことに注意してください。これは、組み込みのTomcatの動作方法です。何が間違っている可能性がありますか?

これは私のディレクトリ構造です:

-- src
    --- main
        -- java
            --- <servlet related classes in package folder>
        -- webapp
            -- WEB-INF
                -- web.xml
            -- assets
                -- js
                -- css
                -- fonts
                -- img
            -- index.jsp

このアプリケーションをパッケージ化すると、存在する WAR は<project-dir>/target次のようになります。

            -- META-INF
            -- WEB-INF
                -- web.xml
            -- assets
                -- js
                -- css
                -- fonts
                -- img
            -- index.jsp

これは、pom.xml の関連部分です。

  ...
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
                <warName>${project.artifactId}</warName>
                <failOnMissingWebXml>false</failOnMissingWebXml>                    
            </configuration>
        </plugin>
      ...

これは、JSP ページのリソースにアクセスする方法です。いくつかのスタイルを試しましたが、何もうまくいかないようです:

 <link type="text/css" href="${pageContext.request.contextPath}/assets/css/bootstrap.min.css" rel="stylesheet">
 <!-- Another way -->
 <link type="text/css" href="assets/css/bootstrap.min.css" rel="stylesheet">

How to link a web resource file from /main/resources in JSP? を参照しました。およびそれが指すリソース。

4

1 に答える 1