Второй HTML-шаблон не будет отображаться в приложении Golang - PullRequest
0 голосов
/ 02 декабря 2019

В моем приложении шаблон login.html прекрасно рендерится, но по какой-то причине home.html не рендерится. Просто перезагружается login.html. Я попытался получить к нему доступ, нажав кнопку «Вход» (к которой прикреплено действие, чтобы отправить его в «/home.html»), и просто попытался получить доступ к «http://localhost:3000/home.html", но результат тот же. кто-то, пожалуйста, укажите мне в правильном направлении?

main.go

package main

import (
    "fmt"
    "log"
    "net/http"
    "text/template"

    "movieapp/db"
)

var loginTmpl, homeTmpl *template.Template

func init() {
    homeTmpl = template.Must(template.ParseFiles("templates/home.html"))
    fmt.Printf("Created template: %v\n", homeTmpl)

    loginTmpl = template.Must(template.ParseFiles("templates/login.html"))
    fmt.Printf("Created template: %v\n", loginTmpl)
}

func main() {
    db.Login()

    fs := http.FileServer(http.Dir("static"))
    http.Handle("/static/", http.StripPrefix("/static/", fs))

    http.HandleFunc("/", loginHandler)
    http.HandleFunc("/home", homeHandler)

    log.Println("listening...")
    http.ListenAndServe(":3000", nil)
}

func loginHandler(w http.ResponseWriter, r *http.Request) {
    if err := loginTmpl.ExecuteTemplate(w, "login", nil); err != nil {
        log.Printf("Failed to execute template: %+v", err)
    }
    fmt.Printf("Request Method: " + r.Method + " Request URL: " + r.URL.EscapedPath() + "\n")
}

func homeHandler(w http.ResponseWriter, r *http.Request) {
    if err := homeTmpl.ExecuteTemplate(w, "home", nil); err != nil {
        log.Printf("Failed to execute template: %+v", err)
    }
    fmt.Printf("Request Method: " + r.Method + " Request URL: " + r.URL.EscapedPath() + "\n")
}

home.html

{{define "home"}}
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Login Successful</title>
    </head>
</html>
{{end}}

login.html

{{define "login"}}
<!DOCTYPE html>
<html lang="en">
<head>
    <title>MovieList</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
<!--===============================================================================================-->  
    <link rel="icon" type="image/png" href="static/images/icons/favicon.ico"/>
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/vendor/bootstrap/css/bootstrap.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/fonts/Linearicons-Free-v1.0.0/icon-font.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/vendor/animate/animate.css">
<!--===============================================================================================-->  
    <link rel="stylesheet" type="text/css" href="static/vendor/css-hamburgers/hamburgers.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/vendor/animsition/css/animsition.min.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/vendor/select2/select2.min.css">
<!--===============================================================================================-->  
    <link rel="stylesheet" type="text/css" href="static/vendor/daterangepicker/daterangepicker.css">
<!--===============================================================================================-->
    <link rel="stylesheet" type="text/css" href="static/css/util.css">
    <link rel="stylesheet" type="text/css" href="static/css/main.css">
<!--===============================================================================================-->
</head>
<body>

    <div class="limiter">
        <div class="container-login100">
            <div class="wrap-login100 p-l-85 p-r-85 p-t-55 p-b-55">
                <form class="login100-form validate-form flex-sb flex-w" action="/home.html">
                    <span class="login100-form-title p-b-32">
                        Account Login
                    </span>

                    <span class="txt1 p-b-11">
                        Username
                    </span>
                    <div class="wrap-input100 validate-input m-b-36" data-validate = "Username is required">
                        <input class="input100" type="text" name="username" >
                        <span class="focus-input100"></span>
                    </div>

                    <span class="txt1 p-b-11">
                        Password
                    </span>
                    <div class="wrap-input100 validate-input m-b-12" data-validate = "Password is required">
                        <span class="btn-show-pass">
                            <i class="fa fa-eye"></i>
                        </span>
                        <input class="input100" type="password" name="pass" >
                        <span class="focus-input100"></span>
                    </div>

                    <div class="flex-sb-m w-full p-b-48">
                        <div class="contact100-form-checkbox">
                            <input class="input-checkbox100" id="ckb1" type="checkbox" name="remember-me">
                            <label class="label-checkbox100" for="ckb1">
                                Remember me
                            </label>
                        </div>

                        <div>
                            <a href="#" class="txt3">
                                Forgot Password?
                            </a>
                        </div>
                    </div>

                    <div class="container-login100-form-btn">
                        <button class="login100-form-btn" action="/home.html">
                            Login
                        </button>
                    </div>

                </form>
            </div>
        </div>
    </div>


    <div id="dropDownSelect1"></div>

<!--===============================================================================================-->
    <script src="static/vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
    <script src="static/vendor/animsition/js/animsition.min.js"></script>
<!--===============================================================================================-->
    <script src="static/vendor/bootstrap/js/popper.js"></script>
    <script src="static/vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
    <script src="static/vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
    <script src="static/vendor/daterangepicker/moment.min.js"></script>
    <script src="static/vendor/daterangepicker/daterangepicker.js"></script>
<!--===============================================================================================-->
    <script src="static/vendor/countdowntime/countdowntime.js"></script>
<!--===============================================================================================-->
    <script src="static/js/main.js"></script>

</body>
</html>
{{end}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...