为什么百里香叶代码在HTML的头部部分不起作用,但在正文中工作正常



我正在使用wro4j来最小化静态内容。 但是,当我在我的开发环境中时,我想使用我的JS和CSS文件的未压缩版本。

为了把它放在上下文中,我正在使用Spring Boot和Thymeleaf。

此代码在我的 HTML <head></head>中不起作用:

<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是未压缩的.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 的 head 部分中没有像我预期的那样运行。

我错过了什么?

感谢@Boris对我问题的评论,解决方案是使用 Thymeleaf 版本 3。但是,作为解决方法,这是我目前所做的:

<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>

相关内容

  • 没有找到相关文章

最新更新