Почему код Thymeleaf не работает в разделе заголовка HTML, но отлично работает в теле

Я использую wro4j для минимизации статического содержимого. Однако, когда я нахожусь в моей среде разработки, я хотел бы использовать несжатые версии моих файлов JS и CSS.

Чтобы поместить это в контекст, я использую Spring Boot и Thymeleaf.

Этот код не работает внутри <head></head> моего HTML:

<th:block th:if="${@environment.getActiveProfiles()[0] != 'development'}">
    <link th:href="@{/wro4j/compressed.css}" rel="stylesheet"></link>
</th:block>
<th:block th:if="${@environment.getActiveProfiles()[0] == 'development'}">
    <link th:href="@{/css/uncompressed.css}" rel="stylesheet"></link>
</th:block>

То, что я вижу из кода выше в источнике моего HTML:

<link rel="stylesheet" href="/wro4j/compressed.css" />

<link rel="stylesheet" href="/css/uncompressed.css" /> 

Конечно, единственный CSS, который должен быть включен, - это uncompressed.css, так как я установил свой профиль для разработки в application.yml.

Однако, если бы я сделал что-то вроде следующего в <body></body> это будет работать отлично, как я ожидаю:

<th:block th:if="${@environment.getActiveProfiles()[0] == 'development'}">
    <div th:text="${@environment.getActiveProfiles()[0]}"></div>
</th:block>
<th:block th:if="${@environment.getActiveProfiles()[0] != 'development'}">
    <div th:text="'WHAT THE HECK!' + ${@environment.getActiveProfiles()[0]"></div>
</th:block>

Установив мой весенний профиль на развитие в application.ymlто, что я ожидал бы увидеть в последнем блоке, это "развитие", а не "ЧТО ТАКОЕ! развитие", и это именно то, что я вижу. Так почему же код не ведет себя так, как я ожидаю, в разделе заголовка моего HTML.

Что мне не хватает?

1 ответ

Благодаря комментарию @Boris к моему вопросу, решение состоит в том, чтобы использовать версию 3. Thymeleaf. Однако в качестве обходного пути это то, что я сделал в настоящее время:

<link th:if="${@environment.getActiveProfiles()[0] != 'development'}"  th:href="@{/wro4j/all.css}" rel="stylesheet" />

<script  th:if="${@environment.getActiveProfiles()[0] == 'development'}" th:src="@{/bootstrap/js/bootstrap.min.js}"></script>
Другие вопросы по тегам