http - Go 服务器无法正确提供文件

标签 http web go webserver localhost

我正在创建一个 SPA。 我正在尝试使用 index.html 响应所有请求 (我在前端处理路由)。

我的目录结构是这样的:

后端

-- main.go

前端

..(一些其他文件)..

-- index.html

整个项目位于“C:\Go\Projects\src\github.com\congrady\Bakalarka”

我的 main.go 文件如下所示:

package main

import (
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "../Frontend/index.html")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

当我运行我的 main.go 文件(使用 go run)时,我的本地主机总是响应“404 页面未找到”。 当我尝试使用 fmt 提供静态内容时,一切正常。

请帮忙,我被困在这个问题上很长时间了,我无法让它工作。 谢谢

最佳答案

请注意,如果您在源文件中对相对路径进行硬编码,则启动应用程序时您所在的目录很重要。

在当前配置中,确保从 Backend 目录启动应用程序,即

C:\Go\Projects\src\github.com\congrady\Bakalarka\Backend,

不是您的应用根目录

C:\Go\Projects\src\github.com\congrady\Bakalarka

将主文件中的字符串更改为Frontend/index.html并运行

C:\Go\Projects\src\github.com\congrady\Bakalarka

关于http - Go 服务器无法正确提供文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34346832/

相关文章:

go - 我可以将我的功能用作 `negroni` 中间件吗

http - Google clientLogin 身份验证 url 响应 - 302 文档已移动

java - MailChimp 3.0 HTTP POST Json 示例

php - CURLOPT_CONNECTTIMEOUT 不工作

web - 谁将浏览器中的元音变音域名重定向到音译域名?

java - 将经度、纬度转换为来自 s2 geometry-library python 的 cell id

java - 具有 Keep-Alive 能力的 HTTP 服务器

eclipse - 在 Eclipse Helios 中构建工作区时出错

javascript - 对象属性覆盖

Golang Cast接口(interface)结构