Spring boot首页设置以及外网访问

今天看到把项目配置dns,让外网通过域名也可以访问,就想试试。
于是新建一个spring boot项目,很简单,就只有一个首页,访问端口直接跳转首页,结果还有几个坑:
首先新建spring boot项目,引入web。
如何设置首页?
首先建一个index.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    天天电子竞技,阿里渐行渐远
</body>
</html>
可放在/static
  • /public
  • /resources
  • /META-INF/resources
这里放在static下。
注意idea新建的html文件可能无效,因为他少了一个 “ / ”
<meta charset="UTF-8"> 它自己新建
<meta charset="UTF-8"/> 修改
这个破问题导致我一直404,修改。
一:配置类
新建config包,其下建一个配置类:
@Configuration
public class DefaultView extends WebMvcConfigurationSupport {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // login页面在 templates 文件夹下
        registry.addViewController("/").setViewName("index");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
        super.addViewControllers(registry);
    }
}
注意以前继承的是WebMvcConfigurerAdapter,现已经过时,这里改为WebMvcConfigurationSupport
 
二:直接加controller路径映射
@Controller
public class TestController {
    @RequestMapping("/")
    public String testIndex(){
        return "index.html";
    }
}   
注意上面return的是“index.html" 而不是”index“
否则又会404.
也可以引入thymeleaf
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
然后把index.html放在templates下,否则它找不到,这时候的controller就可以这么写:
@Controller
public class TestController {
    @RequestMapping("/")
    public String testIndex(){
        return "index";
    }
}  
区别就是少个后缀而已,所以我这里就不用thymeleaf了。
 
外网映射
由于我没有域名,也没有服务器。我这里用的是ngrok,由于官方的可能连接失败,这里使用了国内的一个开发者做的ngrok2:
下载下来,去注册一个账号,拿到token。
在配置文件里替换你注册后获得的token
在命令行下进入到ngrok客户端目录下
执行 ngrok.exe -config=ngrok.conf -subdomain xxx 8080 (此命令用于未在配置文件中配置隧道的情况,端口根据项目来)
如果开启成功 你就可以使用 xxx.ngrok2.xiaomiqiu.cn 来访问你本机的 127.0.0.1:80 的服务啦
如果你自己有顶级域名,想通过自己的域名来访问本机的项目,那么先将自己的顶级域名解析到小米球服务器的IP(域名需要已备案哦),然后执行 ngrok -config=ngrok.conf -hostname xxx.xxx.xxx 80 (xxx.xxx.xxx是你自定义的顶级域名,此命令用于未在配置文件中配置隧道的情况)
如果开启成功 你就可以使用你的顶级域名来访问你本机的 127.0.0.1:80 的服务啦。

posted @ 2020-03-11 13:24  SunSAS  阅读(1822)  评论(0编辑  收藏  举报