关于SpringBoot页面跳转以及访问静态资源问题总结

在学习springboot入门的时候,遇到了这样一个问题,静态资源访问不到。于是上网各种搜索,最终解决。

在springboot项目中默认访问路径是static文件夹和template文件夹,static文件夹下的资源可以通过浏览器直接访问(如:localhost:8080/index.html,如有文件夹输入正确路径即可 如:localhost:8080/image/abc.jpg),而template文件夹下的页面需要在controller中跳转进行访问。在controller中如果直接return页面的名称那么默认从template文件夹中去寻找对应的页面,例如:

@GetMapping("/login")
    public String login() {
        return "/login";
    }

这样的情况会默认去template文件夹下寻找login.html去跳转,那么如果html文件在static文件夹下就需要这么写来进行跳转:

@GetMapping("/login")
    public String toIndex() {
        return "../static/login.html";
    }

 

而在页面中引用样式或图片等静态资源时,默认去static中寻找,所以我们的路径只需写在static文件夹下的正确路径即可。如以下几种方式:

    <img alt="cosplay" src="/image/cosplay.jpg"  width="400px" height="600px" >

    <link rel="stylesheet" href="/css/font.css">
    <link rel="stylesheet" href="/css/xadmin.css">
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script src="/lib/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="/js/xadmin.js"></script>

 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个问题可能是由于以下原因导致的: 1. 项目没有正确部署:请确认你是否将项目正确打成 jar 包并部署到了服务器上。 2. 端口号被占用:请确认项目启动的端口号是否被其他程序占用了。可以通过查看日志文件或使用 `lsof -i:{port}` 命令查看端口是否被占用。 3. 配置文件中的路径不正确:请确认配置文件中的相关路径是否与服务器上的实际路径一致。可以尝试使用绝对路径或使用相对路径来解决这个问题。 4. 配置文件中的域名不正确:请确认配置文件中的域名是否正确,如果域名不正确,可能会导致跳转不成功的问题。 如果以上方法都无法解决问题,建议查看日志文件,了解具体的错误信息,有助于更快地定位问题。 ### 回答2: 关于Spring Boot项目部署上线后出现只能访问到登录界面,跳转不成功的问题,可能有以下几个原因: 1. 静态资源路径配置不正确:在Spring Boot运行时,会默认将静态资源文件(例如CSS、JS文件)放在`resources/static/`目录下。如果在代码中引用了这些静态资源,并且路径配置不正确,就会导致跳转失败。可以通过检查前端页面中静态资源路径是否正确,或者在Spring Boot配置文件(application.properties或application.yml)中修改静态资源访问路径。 2. 路径跳转配置错误:在Spring Boot中,跳转路径的配置通常使用@Controller注解结合@RequestMapping注解来实现。如果跳转路径配置错误,就会导致跳转失败。可以检查代码中的@Controller和@RequestMapping注解的配置是否正确,并且确保路径跳转时使用的是正确的路径。 3. Spring Security安全拦截:如果项目中使用了Spring Security进行权限控制,可能会导致某些路径被拦截,从而导致跳转失败。可以通过在Spring Security配置文件中添加相应路径的权限规则,或者暂时禁用Spring Security来进行测试。 4. 未设置登录成功后的默认跳转路径:在部署上线后,有可能在登录成功后未设置默认的跳转路径,导致登录后仍停留在登录界面。可以在登录成功的逻辑中添加跳转语句,将用户导向其他页面,例如主页或者个人中心页面。 请根据具体情况逐一排查以上原因,找出造成跳转失败的原因,并进行修复,从而解决只能访问到登录界面,跳转不成功的问题。 ### 回答3: 在SpringBoot项目部署上线中,出现只能访问到登录界面,跳转不成功的问题,可能是由于以下几个原因导致的: 1. 配置问题:首先,要确保在SpringBoot项目中的配置文件中正确配置了跳转路径,比如将登录成功后的跳转路径设置为正确的Controller方法路径或者静态资源路径。 2. 权限问题:如果在登录成功后跳转的页面需要特定的权限才能访问,那么要确保登录用户具有足够的权限。可以在跳转的Controller方法上添加权限验证注解,如@PreAuthorize("hasAnyRole('ROLE_ADMIN')"),确保只有具有管理员角色的用户才能访问。 3. 跳转方式问题:可能是跳转方式不正确导致跳转不成功。在SpringBoot中,可以使用redirect或forward进行跳转。在登录成功后应该使用redirect进行跳转,如:return "redirect:/home";而不是使用forward,如:return "forward:/home"。 4. 缓存问题:有时候浏览器缓存会导致跳转不成功的问题。可以尝试在跳转路径上添加一个随机参数,如"redirect:/home?timestamp=" + System.currentTimeMillis(),以避免浏览器缓存。 如果通过以上方法排查仍然无法解决问题,可以考虑查看日志文件,定位具体的错误信息,进一步排查原因并进行修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值