我在Spring启动应用程序的静态文件夹下加载文件时遇到问题。
问题是RequestMapping深度超过2,如@RequestMapping("spring/xyz")
@RequestMapping("spring")
单一深度效果很好但是2深度是前缀' spring'它是连接localhost:8080 / spring /'静态文件夹'
我找到了一半解决方案here
我的文件夹结构是:
static/css/some.css
static/templates/velocity.vm
案例1:效果很好
java:
@RequestMapping("spring")
html:
<link rel="stylesheet" href="css/some.css">
案例2:效果很好
java:
@RequestMapping("spring/xyz")
html:
<link rel="stylesheet" href="../css/some.css">
案例3:无法正常工作
java:
@RequestMapping("spring/xyz/123")
html:
<link rel="stylesheet" href="../css/some.css">
它被称为'http//localhost/spring/xyz/css/some.css'
案例3:效果很好
java:
@RequestMapping("spring/xyz/123")
html:
<link rel="stylesheet" href="../../css/some.css">
案例4:效果很好
java:
@RequestMapping("123")
html:
<link rel="stylesheet" href="../../css/some.css">
有效!!即使我使用../../
相对路径。
我不知道为什么会这样。
实际上我并不太了解Spring Boot API,我认为使用ViewResoler加载其他静态资源。
我想知道这个加载路径机制以及如何通过RequestMapping url路径链接调用&#39; http // localhost / spring / xyz / css / some.css&#39;
我感谢任何回答〜!!
我在来自&#39; metalhead&#39;的spring.io here上提到同样的问题。和布莱恩克洛泽&#39;
答案 0 :(得分:0)
如果您使用百里香叶,您还可以将路径指定为:
<link rel="stylesheet" th:href="@{/css/main.css}"
href="../static/css/main.css" />
它适用于我任何深度。