相对路径总是被解释/解析为基本路径:当前或工作目录 - 因此它总是有其局限性。如果您可以始终注意正确的工作目录,则可以继续使用相对路径。我的建议是不要依赖工作目录,而是明确指定的基本路径。这可能在您的应用程序中具有硬编码的默认值(也可能是工作目录),您应该提供多种方法来覆盖其值。覆盖“相对”路径所针对的基本路径的推荐方法:命令行标志(见flag包)环境变量(参见os.Getenv())(修复命名)用户主目录中的配置文件(参见os/user/User和os/user/Current())一旦有了基本路径,就可以通过加入基本路径和相对路径来获得完整路径。您可以使用path.Join()或filepath.Join(),例如:// Get base path, from any or from the combination of the above mentioned solutionsbase := "/var/myapp"// Relative path, resource to read/write from:relf := "conf/patients.json"// Full path that identifies the resource:full := filepath.Join(base, relf) // full will be "/var/myapp/conf/patients.json"