Where to put static files such as CSS in a spring-boot project?

后端 未结 10 1909
猫巷女王i
猫巷女王i 2020-12-02 09:47

In my current spring-boot project, my views have this line:


to reference a static css

相关标签:
10条回答
  • 2020-12-02 10:27

    I found that if I put my signin.css under src/main/resources/META-INF/resources/static/css/signin.css, then I could access it using /css/signin.css

    Not sure why though.

    0 讨论(0)
  • 2020-12-02 10:29

    Apart from placing it anywhere beneath src/main/resources/static and not using @EnableWebMvc, you'll need to authorize access to your js or css folder especially if you have spring-boot-security in you classpath. You'll add something like this:

    @Configuration
    @EnableWebSecurity
    public class MainSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/", "/home", "/js/**", "/css/**").permitAll()
                    .anyRequest().authenticated()
                    .and()
                .formLogin()
                    .loginPage("/login")
                    .permitAll()
                    .and()
                .logout()
                    .permitAll();
        }
    }
    

    Then in your HTML:

    <link rel="stylesheet"  href="/css/bootstrap.min.css">
    <script src="/js/bootstrap.min.js"></script>
    
    0 讨论(0)
  • 2020-12-02 10:30

    When i used:

    src/main/resources/static/css.
    

    my views have this line:

    <link rel="stylesheet" href="/css/signin.css" />
    
    0 讨论(0)
  • 2020-12-02 10:32

    Anywhere beneath src/main/resources/static is an appropriate place for static content such as CSS, JavaScript, and images. The static directory is served from /. For example, src/main/resources/static/signin.css will be served from /signin.css whereas src/main/resources/static/css/signin.css will be served from /css/signin.css.

    The src/main/resources/templates folder is intended for view templates that will be turned into HTML by a templating engine such as Thymeleaf, Freemarker, or Velocity, etc. You shouldn't place static content in this directory.

    Also make sure you haven't used @EnableWebMvc in your application as that will disable Spring Boot's auto-configuration of Spring MVC.

    0 讨论(0)
提交回复
热议问题