登录
首页 >  Golang >  Go问答

为什么我的静态网页会出现 404 错误?

来源:stackoverflow

时间:2024-02-24 16:02:06 329浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《为什么我的静态网页会出现 404 错误?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我已经工作了大约 2 年开发全栈应用程序(当我最初接触它们时,它们已经相当成熟),并且正在从头开始我的第一个应用程序。我花了一天时间启动 ec2 实例,加载堆栈的依赖项(postgres、golang、react),以及闪亮的新机器所需的所有其他功能(tmux、npm、vim 插件、git 集成等)。我现在被困住了。 我使用 create-react-app 开始我的前端并运行 npm start 进行构建。要查看这一点,我可以转到我的实例 ip:3000。 我创建了在端口 8080 上提供服务的 golang 服务器代码,我可以通过转到 instanceip:8080/hello 来访问我的 helloworld 代码。 我在 react 代码中添加了一个 axios 调用来获取端点 /hello,它返回 404。

我还尝试让我的 golang 将 index.js 作为实例 ip:8080 的静态页面进行处理,并返回 404。

如何让我的不同端口正常运行?我不知道我在这里错过了什么。

这是我的主服务器代码片段:

indexLoc := os.Genenv(webRootEnv) + "/index.html" // verified this is the correct path to my static index.html file by logging it out
fs := http.FileServer(http.Dir(indexLoc))
http.ListenAndServe(":8080", nil)
http.Handle("/", fs)

有人知道我缺少什么吗?提前致谢!


解决方案


可能有两个原因:

  • 您要为 http.Dir 指定一个文件名,它需要一个目录。
  • 您的处理程序在调用 listenandserve 后注册,因此使其无用(从未调用 http.handle)

您可以通过更改代码来修复它,如下所示:

indexLoc := os.Genenv(webRootEnv) // webRootEnv is a directory path
fs := http.FileServer(http.Dir(indexLoc))
http.Handle("/", fs) // register handler before listening
http.ListenAndServe(":8080", nil)

您可能还想处理从 ListenAndServe 返回的错误,以防止程序出现无提示故障

以上就是《为什么我的静态网页会出现 404 错误?》的详细内容,更多关于的资料请关注golang学习网公众号!

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