Java Can';t在特定端点使用thymeleaf访问静态资源
我有带thymeleaf启动器的基本Spring Boot应用程序。(Java Can';t在特定端点使用thymeleaf访问静态资源,java,spring-boot,thymeleaf,Java,Spring Boot,Thymeleaf,我有带thymeleaf启动器的基本Spring Boot应用程序。(2.0.1.发行版) 这是项目结构 如您所见,我有html页面(test,testexchange) 我有一个控制器来访问这两个页面: test.html和test exchange.html页面完全相同 我在下面的目录中有tagManager.js /resources/static/js/tagManager.js 在test-exunge.html中我不能加载这个脚本,但在test.html中我可以(我的意思是在
2.0.1.发行版
)
这是项目结构
如您所见,我有html页面(test,testexchange
)
我有一个控制器来访问这两个页面:
test.html和test exchange.html
页面完全相同
我在下面的目录中有tagManager.js
/resources/static/js/tagManager.js
在test-exunge.html中我不能加载这个脚本,但在test.html中我可以(我的意思是在开发人员控制台中,我得到404访问脚本)
有趣的是,如果我像这样将端点更改为test-exchange.html
脚本已成功加载。据我所知,thymeleaf
不允许在控制器中使用相同的字符串来实现页面。
如何修复它?这是由于js文件的相对映射造成的。加载
xxx/test
下的页面,并尝试从xxx/js/tagManager.js
加载js文件,但如果您位于urlxxx/test/something
处,它将尝试从xxx/test/js/tagManager.js
加载js文件。因此,您将需要来自域根的映射
您可以使用@{/js/tagManager.js}
而不是js/tagManager.js
来实现这一点
这看起来像这样:
<script th:src="@{/js/tagManager.js}"></script>
如果有任何不清楚的地方,请随时询问一个小提示,以改进您的问题:请将代码粘贴为代码块,而不是图像。提前谢谢:)好的,我以后会做的,关于这个问题有什么建议吗?:)你是说这个吗?@AlmasAbdrazak,yes@AlmasAbdrazak,但请注意,它带有一个
@
,在花括号内没有引号