Luca Sepe
Luca Sepe

Reputation: 805

Thymeleaf + CSS+SpringBoot

I have a problem with CSS and Thymeleaf.

In my Spring boot app, I have this structure:

Now, with my html page named ErrorPage and css file named Layout.css, using Thymeleaf I have, in the head of ErrorPage:

<link href="../css/Layout.css" th:href="@{css/Layout.css}" type="text/css" />

But this does not work.

What am I doing wrong?

Upvotes: 29

Views: 60948

Answers (3)

Adrian
Adrian

Reputation: 515

Move your template folder right under resources:

src/main/resources/static/css (for CSS files);
src/main/resources/templates (for HTML templates).

Then correct the link tag as follows (relative or absolute):

<link href="../css/firstcss.css" rel="stylesheet">
<link href="/css/secondcss.css" rel="stylesheet">

The old solution with static in front doesn't work for me.

Upvotes: 4

Semyon Evgrafov
Semyon Evgrafov

Reputation: 106

The main culprit of this behaviour is a custom security configuration which is very likely you are doing in your WebSecurityConfigurerAdapter subclass. If you use SpringBoot 2+ version you should add the following line in your WebSecurityConfigurerAdapter configuration

.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()

Upvotes: 3

DimaSan
DimaSan

Reputation: 12674

Move your template folder right under resources:

  • src/main/resource/static/css (for CSS files);
  • src/main/resource/templates (for HTML templates).

Then correct the link tag as follows:

<link href="../static/css/Layout.css" th:href="@{/css/Layout.css}" rel="stylesheet" />

Upvotes: 49

Related Questions