2015-01-21 5 views
2

스프링 부트 프로젝트가 있습니다. 프로젝트 구조는 다음과 같다 : 나는 받는다는이 구축 실행하면 내 CSS는 다음과 같이 포장됩니다정적 리소스 + web-inf + 스프링 부트

src 
|- main 
    |-java 
     |-demo 
    |-resources 
     |-static 
      |-css/mycss.css 

:

web-inf 
    |-classes 
     |-demo 
     |-static 
      |-css/mycss.css 

내 문제가 왜 그 IS 웹 - "내부 패키지 정적 리소스를 INF/클래스 "폴더, 내가 localhost:8080/css/mycss.css or localhost:8080/static/css/mycss.css

내 pom.xml 파일을 통해 내 CSS에 액세스 할 수 없습니다 나는 것은 :

<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-tomcat</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
+0

'/ static/css/mycss.css'는 스프링 부트의 기본 설정으로 돌아 다니지 않는다면 작동 할 것입니다. –

답변

3

src/main/resources는 maven의 기본 리소스 폴더이므로 기본적으로 여기에 입력 한 내용은 classpath에 있으므로 WEB-INF/classes에 저장됩니다.

+0

src/main/webapp/static/some-xml-file에 파일을 추가하면 root-of-webapp/static/some-xml-file에 파일이 추가됩니다. src/main/webapp/web-INF/some-xml-file에 파일을 추가하면 올바른 폴더 구조가 만들어져 root-of-webapp/WEB-INF/some-xml-file 구조가 생성됩니다. root-of-webapp/WEB-INF/other-structure-created-by-by-spring -boot – Mayurb

+0

스프링 부트의 기본 설정을 확인한 결과 resources/static/css/mycss.css 파일을 사용할 수 있어야합니다. localhost : 8080/css/mycss.css url. 그래서 내 대답을 편집했습니다. –

+0

만약 내가 리소스/정적/CSS/mycss.css, 내 프로젝트에 구조를 추가, 당신은 무엇을 목표로 생성 된 폴더 구조라고 생각합니까. 내 환경에, 자사의 점점 웹 - inf/classes/css/mycss.css, 그리고 내가 생각하지 않아 클래스 폴더 안에 웹 - inf 정적 리소스처럼 액세스 할 수있을 것입니다 – Mayurb

0

나는 표준

@SpringBootApplication 
public class ConfigInitializer extends SpringBootServletInitializer{ 
    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application){ 
     return application.sources(ConfigInitializer.class); 
    } 
    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     WebApplicationContext context = getContext(); 
     Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet(context)); 
     registration.setLoadOnStartup(1); 
     registration.addMapping("/*"); // required JBOSS EAP 6.2.0 GA 
     super.onStartup(container); 
    } 
    private WebApplicationContext getContext() { 
     AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
     context.setConfigLocation(ConfigInitializer.class.getName()); 
     return context; 
    } 
} 

내가 일을 할 수있는 가능성이 무슨 잘못을 다음입니까?

관련 문제