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 的服務啦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM