【问题标题】:Spring Boot (using tomcat) url redirect no template engineSpring Boot(使用tomcat)url重定向无模板引擎
【发布时间】:2023-04-11 06:46:01
【问题描述】:

我将 Spring Boot 用于我的 Web 服务和 Web 应用程序。现在我不想让我的网络服务器自动从 ex 重定向。 www.mypage.com:8080 到 www.mapage.com:8080/index.html。

我不想使用任何像 Thymeleaf 这样的模板引擎,所以我不能通过控制器中的 @RequestMapping 来执行此操作,因为使用 @RequestMapping 通过方法返回字符串实际上会将该字符串打印为文本,而不是获取文件并呈现它。

我还通过添加 ".addResourceHandler("/**").addResourceLocations( “/”,“类路径:/模板/”)”。在此之后手动输入 www.mypage.com:8080/index.html 或 www.mypage.com:8080/page2.html 将显示正确的页面。

所以我问有没有办法将 www.mypage.com 映射到 mypage.com/index.html 并且仍然有其他页面,如 www.mypage.com:8080/page2.html 工作,即根页面(/) 仍然查看资源/模板目录? 也许重定向或其他东西会有所帮助(使用带有弹簧启动的tomcat 7)?

【问题讨论】:

    标签: tomcat spring-boot


    【解决方案1】:

    您不使用模板引擎,因此我假设您的 HTML 文件是静态文件。为了实现您的目标,请将 HTML 文件放入目录src/main/resources/static/。在您的情况下,将文件 index.html 放入此文件夹,只需调用 http://<domain>/index.html 即可立即使用。

    要从http://<domain>/ 重定向到该文件,请创建这样的控制器:

    @Controller
    public class HomeController {
        @RequestMapping(value="/")
        public String index(){
            return "redirect:/index.html";
        }    
    }
    

    不需要其他更改,例如添加资源处理程序。

    【讨论】:

    • 对我不起作用,不知道为什么,但是这种重定向不起作用我已经制作了资源处理程序,因为过去使用资源/静态对我的 js 和 css 不起作用(我只保留了这些是静态的)所以我已经映射了静态和模板只是为了完成它我还在这个应用程序中创建了 REST 服务,所以它们之间可能存在某种冲突 - 我正在使用 spring rest 和 spring web mvc 谢谢清理一些东西他们在春天是如何工作的
    【解决方案2】:

    请做:

    @Controller
    @RequestMapping("/")
    public class RedirectController {
    
        @GetMapping("/forwardWithForwardPrefix")
        public ModelAndView redirectWithUsingForwardPrefix() {
            return new ModelAndView("forward:/redirectedUrl");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-05-11
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 2015-08-08
      • 2021-12-14
      相关资源
      最近更新 更多