将VueJS前端连接到Golang后端

时间:2020-11-08 00:17:15

标签: javascript vue.js go vue-cli mux

我目前正在尝试建立一个项目,在该项目中我们有一个单独的客户端前端和后端。在这个项目中,我使用vue-cli-service快速创建了一个包含必要样板的VueJS客户端。我还尝试使用golang中的大猩猩多路复用器路由器运行此前端。

我对该项目的代码结构如下(我相信这给我带来了问题):

Multiplayer Piano 
  -> handlers (used for handling the gorilla mux routes) [Irrelevant atm]
  -> UI (Where my front-end is contained
    -> node_modules
    -> public
      -> index.html
    -> src
      -> App.vue
      -> main.js
  -> routes.go
  -> server.go (Where my main function is)

问题是,当我跑步时

go run ./

服务器已启动,我可以看到其中包含的index.html,但是app元素上未安装任何东西。

server.go当前具有以下逻辑:

func main() 
{ 
  router := mux.NewRouter()

  AddAppRoutes(router)

  log.Fatal(http.ListenAndServe(":8080", router)
}

AddAppRoutes函数位于routes.go中,其定义如下:

package main
import ...

func setStaticFolder(route *mux.Router)
{
  // What i'm trying to do here is serve our JS... however I don't think i'm doing it correctly
  // I believe this is where the issues are
  fs := http.FileServer(http.Dir("./UI/src"))
  route.PathPrefix("/UI/src").Handler(http.StripPrefix("/UI/src", fs))
}


func AddAppRoutes()
{
  setStaticFolder(route)
  // This is where we handle and serve our index.html
  route.Handlefunc("/", handlers.RenderHome)
 
}

处理程序中的renderhome定义如下:

func RenderHome(response http.ResponseWriter, request *http.Request)
{
  // Serving the html
  http.ServeFile(response, request, "UI/public/index.html")
}

想知道我是否可以得到一些帮助,以使其正常工作... 谢谢!

0 个答案:

没有答案