gpt4 book ai didi

go - 使用 HandleFunc 的静态内容

转载 作者:行者123 更新时间:2023-12-01 22:44:18 25 4
gpt4 key购买 nike

我需要在提供静态内容、html、css 和 js 时设置一个 cookie。

下面的代码提供一个裸 html 文件,没有 css 等。

所有的 css 和 js 都位于与 index.html 相同级别的“assets”文件夹中。

有什么建议么?

func indexHandler(w http.ResponseWriter, req *http.Request) {
http.SetCookie(w, &http.Cookie{Name: config.cookieName, Value: config.cookieValue})
cookie, err := req.Cookie(config.cookieName)
if err != nil {
log.Println(whereami.WhereAmI(), err.Error())
}

log.Println("Cookie: ", cookie)
http.StripPrefix("/", http.FileServer(http.Dir("./"))).ServeHTTP(w, req)
}

但是这样做会提供一个完整的 html 页面:
router.PathPrefix("/").Handler(http.FileServer(http.Dir("./")))

最佳答案

就像@Adrian 提到的那样,这似乎是您期望提供的文件位置的问题。例如,以下代码应与 dir 结构按预期工作

main.go 
index.html
package main

import (
"net/http"
)

func main() {
http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) {
http.SetCookie(w, &http.Cookie{Name: "foo", Value: "bar"})
http.StripPrefix("/foo", http.FileServer(http.Dir("./"))).ServeHTTP(w, r)
})

panic(http.ListenAndServe(":3030", nil))
}

[编辑]:去除前缀

关于go - 使用 HandleFunc 的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62288493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com