3

我正在使用 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>

将我的 spring 配置文件设置为development in 后application.yml,我希望从后一个块中看到的是“开发”而不是“这到底是什么!开发”,这正是我所看到的。那么为什么相同的代码在我的 HTML 的 head 部分中没有像我预期的那样表现。

我错过了什么?

4

1 回答 1

1

Thanks to @Boris's comment on my question, the solution is to use Thymeleaf version 3. However as a workaround this is what I have done for the time being:

<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>
于 2016-06-10T12:20:46.443 回答