使用Go递归托管静态文件时SvelteKit静态资源加载异常问题
SvelteKit静态文件部署:_app目录文件无法加载的解决方案
你的Go后端当前仅配置了根路径的静态文件服务,当请求/_app下的资源时,路由未将请求映射到static目录的对应文件,导致404错误。即便移除HTML文件后能看到目录列表,点击子路径时依然无法正确匹配文件。
解决方案
修改Go路由配置,使用PathPrefix("/")匹配所有静态文件请求,确保子路径请求能正确映射到static目录:
func main() { router := mux.NewRouter() // 替换原根路径处理逻辑,用PathPrefix匹配所有静态文件请求 router.PathPrefix("/").Handler(http.FileServer(http.Dir("static"))) router.HandleFunc("/large-files", largeFilesHandler).Methods("OPTIONS", "POST") router.HandleFunc("/delete-file", deleteFileHandler).Methods("DELETE", "OPTIONS") logrus.SetLevel(logrus.ErrorLevel) err := http.ListenAndServe(":8000", router) if err != nil { logrus.Fatal(err) } }
注意事项
- 确认SvelteKit构建完成后,
static目录下存在完整的_app文件夹及相关文件,验证npm run build等构建命令执行成功。 - mux路由会优先匹配更具体的路径,因此你的接口路由(
/large-files、/delete-file)会被优先处理,不会被静态文件服务覆盖。
内容的提问来源于stack exchange,提问作者Brandon Kauffman
相关产品推荐
相关产品推荐

