Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Pagina em branco

Boa noite, tudo certo ? Fiz o código exatamente como foi exemplificado, mas ao tentar acessar a página ela está em branco. O Servidor sobe normal e aparentemente encontra o templates/index.html. Também chequei os erros retornados pela função, e estão todos vazios.

package main

import (
    "fmt"
    "html/template"
    "net/http"
)

var temp = template.Must(template.ParseGlob("templates/*.html"))

func main() {
    http.HandleFunc("/", index)
    err := http.ListenAndServe(":8000", nil)
    fmt.Println(err)
}

func index(w http.ResponseWriter, r *http.Request) {
    temp.ExecuteTemplate(w, "index", nil)
    // fmt.Println(err)
    // if err != nil {
    //     log.Fatalln(err)
    // }
}

Html:

{{define "Index"}}
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
        crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
        crossorigin="anonymous"></script>
    <title>Alura loja</title>
</head>
<nav class="navbar navbar-light bg-light mb-4">
    <a class="navbar-brand" href="/">Alura Loja</a>
</nav>

<body>
    <div class="container">
        <section class="card">
            <div>
                <table class="table table-striped table-hover mb-0">
                    <thead>
                        <tr>
                            <th>Nome</th>
                            <th>Descrição</th>
                            <th>Preço</th>
                            <th>Quantidade</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Camiseta</td>
                            <td>Bem bonita</td>
                            <td>29</td>
                            <td>10</td>
                        </tr>
                        <tr>
                            <td>Notebook</td>
                            <td>Muito rápido</td>
                            <td>1999</td>
                            <td>2</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </section>

    </div>
</body>

</html>
{{end}}
2 respostas
solução!

Oi, Tairan. Beleza?

Acredito que tenha sido somente um pequeno erro. Repare que quando você executa o template, você chama como index, com "i" minúsculo:

func index(w http.ResponseWriter, r *http.Request) {
    --------------------------+
                              |
    temp.ExecuteTemplate(w, "index", nil)
    // fmt.Println(err)
    // if err != nil {
    //     log.Fatalln(err)
    // }
}

Mas no template você definiu como Index, com "i" maiúsculo:

{{define "Index"}}
<!DOCTYPE html>
<html lang="en">

Espero ter ajudado! Se tiver alguma dúvida, é só dizer!

Meu deus kkkkk Vou testar aqui, obrigado pela resposta