3
我正在使用wro4j來縮小靜態內容。但是,當我在我的開發環境中時,我想使用我的JS和CSS文件的未壓縮版本。爲什麼Thymeleaf代碼不能在HTML的頭部工作,但在正文中工作正常
把它放到上下文中,我使用的是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應該包含在uncompressed.css中,因爲我在'application.yml'中將我的配置文件設置爲development。
但是如果我做這樣的事情在<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的頭部沒有像我期望的那樣運行。
我錯過了什麼?
參見[這個bug(HTTPS ://github.com/thymeleaf/thymeleaf/issues/246)。你可以直接在'link'上直接使用'th:if',並在另一個上使用'th:unless'。 –
@BoristheSpider您應該將此作爲解決方案發布,以便與之相關 –
@hamster另一種更改開發和生產文件名的選擇是基於環境構建不同的文件。像Gulp或Webpack這樣的工具很好用。它們也可以集成到Maven和Gradle項目中。稍微超出這個問題的範圍,但我想我會提及它。 –