gpt4 book ai didi

html - 在 Go Web 应用程序中渲染 CSS

转载 作者:IT老高 更新时间:2023-10-28 13:01:36 25 4
gpt4 key购买 nike

我在 this 之后编写了一个非常基本的 Web 应用程序。教程。我想在外部样式表中添加 css 规则,但它不起作用 - 当呈现 HTML 模板时,出现问题并且 CSS 被完全忽略。如果我将规则放在标签中,它会起作用,但我不想处理它。

在 Go Web 应用程序中,如何呈现外部 CSS 样式表?

最佳答案

添加一个处理程序来处理来自指定目录的静态文件。

例如。创建 {server.go 目录}/resources/并使用

http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("resources")))) 

与/resources/somethingsomething.css 一起

使用 StripPrefix 的原因是您可以随意更改服务目录,但 HTML 中的引用保持不变。

例如。从/home/www/提供服务

http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("/home/www/"))))

请注意,这将使资源目录列表保持打开状态。如果你想防止这种情况发生,go snippet 博客上有一个很好的片段:

http://gosnip.posterous.com/disable-directory-listing-with-httpfileserver

编辑:Posterous 现在已经不存在了,所以我刚刚从 golang 邮件列表中提取了代码并将其发布在此处。

type justFilesFilesystem struct {
fs http.FileSystem
}

func (fs justFilesFilesystem) Open(name string) (http.File, error) {
f, err := fs.fs.Open(name)
if err != nil {
return nil, err
}
return neuteredReaddirFile{f}, nil
}

type neuteredReaddirFile struct {
http.File
}

func (f neuteredReaddirFile) Readdir(count int) ([]os.FileInfo, error) {
return nil, nil
}

讨论它的原始帖子:https://groups.google.com/forum/#!topic/golang-nuts/bStLPdIVM6w

并像这样使用它来代替上面的行:

 fs := justFilesFilesystem{http.Dir("resources/")}
http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(fs)))

关于html - 在 Go Web 应用程序中渲染 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13302020/

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