Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Images in html for Spring thymeleaf won't show up

Below, I am using login.html as the page where I am adding the image test.png within /static/images/

layout

So, in login.html, I have <img src="../static/images/test.png" width="1000" th:src="@{images/test.png}"/>, which gives a blank image. Why isn't it showing up?

In my SecurityConfiguration.java file, I have

@Override
protected void configure(final HttpSecurity http) throws Exception {
    http
      .csrf().disable()
      .authorizeRequests()
      //.antMatchers("/**").hasRole("ADMIN")
      .antMatchers("/static").permitAll()
      .and().formLogin()
      .loginPage("/login")
      .permitAll(); 

When I use this configuration, it uses the default index.html page which shows the image fine. But, If I uncomment .antMatchers("/**").hasRole("ADMIN"), it will bring me to login.html, but I can't view the image.

like image 238
BobbKitty729 Avatar asked Dec 18 '25 13:12

BobbKitty729


1 Answers

There are 3 problems I can spot.

  1. Instead of .antMatchers("/static") you should rather have .antMatchers("/images/**") since anything from src/main/resources/static will be served from the root of your application (as explained here - mind that folders "public" and "static" are interchangeable to Spring Boot).
  2. Order of matchers for .authorizeRequests() matters! Just look as last example of method's documentation. You should have your ant matchers reversed:
   .antMatchers("/images/**").permitAll() // more detailed paths should go first
   .antMatchers("/**").hasRole("ADMIN")   // more general paths should go last
  1. Consider using th:src="@{/images/test.png}" instead of th:src="@{images/test.png}". The extra slash at beginning makes the path relative to the root of your application what gets along with first advice. As stated in Thymeleaf's documentation:

Relative URLs starting with / (eg: /order/details) will be automatically prefixed by the application context name.

like image 101
Jakub Ch. Avatar answered Dec 21 '25 02:12

Jakub Ch.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!