2016-12-16 41 views
0

は、spring-boot-starter-web-mvcを初期開発に使用していました。サーバーにwarファイルをデプロイすると、しかし、私は春のブートを使用して同じコードを実行すると、正常に動作しています。以下は、jsおよびcssファイルをロードするディレクトリ構造と設定です。誰も私にどのように問題があるか教えてもらえますか?プロジェクトにはJavaベースの設定のみを使用します。私はプロジェクトを展開する前にdocの8.1.1を参照し、以下のように同じpomファイル構成を使用しました。ApacheとTomcatのwarファイルをデプロイ中にCSSとJSファイルがロードされない

Directory structure

構成ファイル -

public class ViewWebAppConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     // configuration for assets/ static files 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
    } 

    @Bean 
    public InternalResourceViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/jsp/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 

    @Bean 
    public ResourceBundleMessageSource messageSource() { 
     ResourceBundleMessageSource rb = new ResourceBundleMessageSource(); 
     rb.setBasenames(new String[] { "validation" }); 
     return rb; 
    } 

} 

pom.xmlファイル

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.4.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
     <log4j.version>2.7</log4j.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
     </dependency> 

     <!-- Dependency for rendering jsp pages --> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>tomcat</groupId> 
      <artifactId>jasper-compiler</artifactId> 
      <version>5.5.23</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>tomcat</groupId> 
      <artifactId>jasper-runtime</artifactId> 
      <version>5.5.23</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>tomcat</groupId> 
      <artifactId>jasper-compiler-jdt</artifactId> 
      <version>5.5.23</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Dependency for rendering jsp pages --> 

     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
     </dependency> 
    </dependencies> 

以下のように、ばねタグを使用して、JSとCSSをロード -

<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%> 

<spring:url value="/resources/assets/js/custom.min.js" var="customJS" /> 
<script src="${customJS}"></script> 

<link href="${customFieldAgent}" rel="stylesheet"/> 
<spring:url value="/resources/assets/css/customfieldAgent.css" var="customFieldAgent" /> 

以下は、サーバーのログです -

17:03:10.014 [HTTP-NIO-8080-EXEC-7] DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - ませんでしたWARN org.springframework.web.servlet.PageNotFound - のマッピングが見つかりませんでした。[/ $ {starrrJS} の名前「ディスパッチャ」17:03:10.014 [http-nio-8080-exec-7]を持つDispatcherServletのui/$%7BstarrrJS%7D] DEBUG org.springframework.web.servlet.DispatcherServlet - 成功 完了リクエスト17: 03:10.018 [http-nio-8080-exec-4] DEBUG org.springframework.web.servlet.DispatcherServlet - [/ ui/$%7BcustomJS%7D] 17:03:10.018 [http-nio-8080-exec-4]のGET要求を処理する名前 'ディスパッチャ'を持つ DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - パス/ $ {customJS}のハンドラメソッドを検索する17:03:10.019 [http-nio-8080-exec-4] DEBUG org.springframework .web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - [/ $ {customJS}]のハンドラメソッドが見つかりませんでした17:03:10.019 [http-nio-8080-exec-4] WARN org.springframework.web .servlet.PageNotFound - のマッピングが見つかりませんでした。 名前 'dispatcher' 17:03:10.019のDispatcherServletのURI [/ui/ $%7BcustomJS%7D]のHTTPリクエスト[HTTP-NIO-8080-EXEC-4] DEBUG org.springframework.web.servlet.DispatcherServlet - 成功し 完了した要求

+0

https://github.com/MFaisalHyder/REST_APIこのプロジェクトを親切にチェックして、これが役立つかどうかを確認してください。私はソートされていないと答えを投稿します。 –

+0

あなたは場所に(/ resources /)を提供しています。/assets /は、実際のリソースフォルダの上にあります。registry.addResourceHandler( "/ resources/**/*")。addResourceLocations( "/ resources/assets /");試してみて、それが動作するかどうかを教えてください –

+0

いいえ動作していません。サーバーログで更新しました。 – Worker

答えて

0

それは私のために働いているこの方法を試してみてください。

プロジェクト構造:

src/main/webapp/static/[css,js,images] 
src/main/webapp/WEB-INF/views/[for all .jsp pages] 

設定

@Configuration 
@ComponentScan(basePackages = "parent package name where all packages reside") 
public class ApplicationConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureViewResolvers(ViewResolverRegistry registry) { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/views/"); 
     viewResolver.setSuffix(".jsp"); 
     registry.viewResolver(viewResolver); 
    } 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     // when static resources are inside resources folder under WEB-INF 
     // registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/"); 

     // when static resources are inside static folder under webapp 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
    } 
} 

のDispatcherServletは物事をパックする方法を教えてください...

import javax.servlet.Filter; 
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] { ApplicationConfiguration.class }; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return null; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] { "/" }; 
    }  
} 

さて、これはあなたを助ける

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
    </dependency> 

ホープあなたのpom.xmlでこれを追加...のようなビューに

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <link href="<c:url value='/static/css/application.css' />" rel="stylesheet"></link> 
    </head> 

をこれらを呼び出します。

+0

ありがとう、私はチェックします。 – Worker

関連する問題