我有一个带有百里香启动器的基本Spring Boot应用程序。(2.0.1.RELEASE
)
这是项目结构
如您所见,我有html页面(test,test-exchange
)
我有一个控制器可以访问这两个页面:
test.html and test-exchange.html
页面完全相同
以下目录中我有tagManager.js
/resources/static/js/tagManager.js
在test-exhange.html中,我无法加载此脚本,但在test.html中,我可以加载(我的意思是在开发人员控制台中,我可以访问404脚本)。
有趣的是,如果我像这样将端点更改为test-exchange.html
脚本成功加载。据我了解,thymeleaf
不允许在控制器中使用相同的字符串来实现页面。
如何解决??
答案 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>
如果有任何不清楚的地方随时问