Java 为什么thymeleaf获得URL剩余值/用户/编辑";?

Java 为什么thymeleaf获得URL剩余值/用户/编辑";?,java,spring-boot,Java,Spring Boot,照片: @短暂的 公共字符串getPhotosImagePath(){ if(id==null | | photos==null)返回“/images/defaultUser.png”; 返回“用户照片/”+this.id+“/”+this.photos; } 这是我的胸腺叶代码,在其他地方它为我返回了正确的结果,但在这里,我收到的照片的路径留下了一些“/用户/编辑”部分。如何解决这个问题 http://localhost:8080/ShopmeAdmin/users/edit/user-照片


照片:
@短暂的
公共字符串getPhotosImagePath(){
if(id==null | | photos==null)返回“/images/defaultUser.png”;
返回“用户照片/”+this.id+“/”+this.photos;
}
这是我的胸腺叶代码,在其他地方它为我返回了正确的结果,但在这里,我收到的照片的路径留下了一些“/用户/编辑”部分。如何解决这个问题 http://localhost:8080/ShopmeAdmin/users/edit/user-照片/13/cfe3d8d31bc1e89fb1d01.jpg


我只想:http://localhost:8080/ShopmeAdmin/user-photos/13/cfe3d8d31bc1e89fb1d01.jpg

在返回语句中,字符串
“user photos/”
没有前导斜杠(
/
),因此它将被解释为相对路径(相对于当前页面位置)

假设
ShopmeAdmin
是应用程序的根上下文,则需要在
用户照片/
中添加一个前导斜杠:

return "/user-photos/" + this.id + "/" + this.photos;
Thymeleaf在其语法中有许多不同的方法来处理相对和绝对URL,总结如下:

绝对URL:

相对URL,可以是:

  • 相对页面:user/login.html
  • 上下文相关:/itemdetails?id=3(服务器中的上下文名称将自动添加)
  • 服务器相对:~/billing/processInvoice(允许在同一服务器的另一个上下文(=应用程序)中调用URL
  • 协议相关URL://code.jquery.com/jquery-2.0.3.min.js
您当前的URL(没有前导斜杠)是相对于当前页面(我假设是用户编辑页面)的

新URL(带前导斜杠)将与上下文相关


还有几个额外的注意事项:

与协议相关的URL现在已经过时了,可能应该更新

为了安全和清晰,我建议始终使用支架:

if(id==null | | photos==null){
返回“/images/defaultUser.png”;
}
return "/user-photos/" + this.id + "/" + this.photos;