登录
首页 >  Golang >  Go问答

如何调用静态HTML文件

来源:stackoverflow

时间:2024-04-20 10:39:38 475浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《如何调用静态HTML文件》,聊聊,我们一起来看看吧!

问题内容

我创建了一个包含 index.html 文件的静态文件夹,并在我的 go 文件中写道:

package main

import (
    "net/http"
)

func main() {
    http.handle("/", http.fileserver(http.dir("./static")))

    http.listenandserve(":8482", nil)
}

在探索 http://localhost:8482/ 时效果很好

我尝试将代码编写为:

http.Handle("/static", http.FileServer(http.Dir("./static")))

但是在探索 http://localhost:8482/static 时失败并出现 404 错误


解决方案


http.handle("/static", http.fileserver(http.dir("./static"))) 只是意味着,“每当有人连接到 .../static 时,将整个请求重新路由到文件服务器根目录为 ./static"。

但是,url 会按原样传递到文件服务器。也就是说,文件服务器收到用户的请求,认为用户正在根("./static")目录中寻找名为“static”的文件。

事实上,如果您只是将一个名为“static”的文件放在“./static”目录中,则转到 .../static 将提供该文件。

因此修复需要两件事:

  1. 将路径前缀更改为“/static/”而不是“/static”,以便静态目录中的所有文件都可以重新路由到文件服务器(而不仅仅是“/static”请求)
  2. 在将请求传递到文件服务器之前,从请求中去除“/static/”路径前缀。

像这样:

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

到这里,我们也就讲完了《如何调用静态HTML文件》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>