Go 如何设置http.Dir(..)相对于当前项目文件夹的目录路径 处境

Go 如何设置http.Dir(..)相对于当前项目文件夹的目录路径 处境,go,directory,path,Go,Directory,Path,我正在使用GoLand,有以下情况: 给出了以下目录结构: -project --a ---website index.html位于project/a/website/中,Main.go位于project/a/中,代码如下: package main import ( "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("./website/"))) http.ListenAndS

我正在使用GoLand,有以下情况:

给出了以下目录结构:

-project
--a
---website
index.html位于project/a/website/中,Main.go位于project/a/中,代码如下:

package main

import (
    "net/http"
)

func main() {
    http.Handle("/", http.FileServer(http.Dir("./website/")))
    http.ListenAndServe(":99", nil)
}
如果我在GoLand中以project/a/作为项目文件夹运行Main.go,您可以按预期访问localhost:99上的webpage index.html,但如果我以project/作为项目文件夹运行Main.go,则
http.Handle(“/”,http.FileServer(http.Dir(“./website/”)
中的路径“/website/”将出错

问题:
我必须在
http.Dir(…)
中设置什么作为目录路径才能独立于当前项目文件夹访问localhost:99上的网页?

使用绝对路径,然后您可以从任何地方运行项目


您可能还想考虑将路径值移到某种形式的配置中,比如说,在您完成开发项目并准备将其部署到服务器之后,硬编码的绝对值将不一定帮助您,而不是配置,无论是基于文件的还是基于EVV的,都可以为您解决这个问题。p> 使用绝对路径,然后您可以从任何地方运行您的项目。您可能还想考虑将路径值移到某种形式的配置中,比如说,在您完成开发项目并准备将其部署到服务器后,硬编码的绝对值将不会帮助您,而是配置,无论是基于文件的还是基于EVV的,都可以为您解决这一问题。“我必须将什么设置为目录路径[…]才能独立于当前项目文件夹访问网页[…]?”当然是绝对路径(即以斜杠开头的路径)。没有与项目源相关的路径,它与二进制文件的cwd相关。部署二进制文件时,项目源文件通常不存在。谢谢,设置绝对路径完成了任务。@mkopriva是否介意将您的评论作为答案发布,以便我可以将此问题标记为“已回答”?