无法在特定端点使用百里香叶访问静态资源

时间:2018-11-21 11:33:28

标签: java spring-boot thymeleaf

我有一个带有百里香启动器的基本Spring Boot应用程序。(2.0.1.RELEASE

这是项目结构

enter image description here

如您所见,我有html页面(test,test-exchange) 我有一个控制器可以访问这两个页面:

enter image description here

test.html and test-exchange.html页面完全相同

enter image description here

以下目录中我有tagManager.js

/resources/static/js/tagManager.js

在test-exhange.html中,我无法加载此脚本,但在test.html中,我可以加载(我的意思是在开发人员控制台中,我可以访问404脚本)。

有趣的是,如果我像这样将端点更改为test-exchange.html

enter image description here

脚本成功加载。据我了解,thymeleaf不允许在控制器中使用相同的字符串来实现页面。 如何解决??

1 个答案:

答案 0 :(得分:1)

这是由于js文件的相对映射引起的。 xxx/test下的页面已加载,并尝试从xxx/js/tagManager.js加载js文件,但是如果您使用的网址是xxx/test/something,它将尝试从xxx/test/js/tagManager.js加载js文件。 。因此,您将需要从域的根开始进行映射。

您可以使用@{/js/tagManager.js}而不是js/tagManager.js来实现这一目标。

这看起来像这样:

<script th:src="@{/js/tagManager.js}"></script>

如果有任何不清楚的地方随时问