猿问

如何使用 golang 运行带有 css 的 html

大家,我在通过golang文件在html文件中包含css时遇到问题。本地服务器上的输出只有html文件,没有css,我该如何解决?


也许我使用模板包的方式有问题,所以你能解释一下如何以不同的方式进行路由吗?示例:当您访问http://localhost:8080/login时,它会显示login.html。我看到了有关它的 net/http 文档,但要么我是盲人,要么我只是试图在那里找到错误的东西。所有文件都在同一个目录中


欢迎.html


<!Doctype html>

<html>

<head>

<meta charset="utf-8">

<title>Website</title>

    <link rel="stylesheet" href="style.css" >

</head>


<body>

    <link rel="stylesheet" href="style.css">

<form action="">

    <center><h1>Enter</h1></center>

        <div class="group">

            <label for="">Login:</label>

            <input type="text">

        </div>

        <div class="group">

            <label for="">Password:</label>

            <input type="password">

        </div>

    <div class="group">

            <center><button>Come in</button></center>

        </div>

    <center><a href="regist.html" class="link">Registration</a></center>

    </form>


</body>

</html>

去文件.go


package main


import (

    "fmt"

    "html/template"

    "net/http"

)


func welcome(w http.ResponseWriter, r *http.Request) {


    tmpl := template.Must(template.ParseFiles("welcome.html"))


    tmpl.Execute(w, nil)

}


func login(w http.ResponseWriter, r *http.Request) {

    tmpl := template.Must(template.ParseFiles("login.html"))


    tmpl.Execute(w, nil)

}


func main() {

    http.HandleFunc("/", welcome)

    http.HandleFunc("/login", login)


    fmt.Println("Listening...")

    http.ListenAndServe(":8080", nil)

}

**输出如下:**

总结:如何使用 golang net/http 或 html/template 包显示带有 css 的页面?如何正确地在页面之间进行路由?对错误感到抱歉。提前谢谢各位!



DIEA
浏览 264回答 1
1回答

慕丝7291255

你的 Go 服务器不知道它应该服务style.css,因为你从来没有告诉过它。如果将该文件移动到assets/子目录,则可以注册一个处理程序来为该目录提供服务:http.Handle("/assets/",&nbsp;http.StripPrefix("/assets/",&nbsp;http.FileServer(http.Dir("assets"))))另请参阅此答案。
随时随地看视频慕课网APP

相关分类

Go
我要回答