猿问

如何使用 gorilla/mux 在 GO 中将我的 bundle.js 文件与我的 html

我正在尝试制作一个带有 Go 后端和 React 前端的简单服务器。为此,我需要发送我的静态 html 和 bundle.js 文件。她的 html


<!DOCTYPE html>

<html>

  <head>

    <meta charset="utf-8">

    <link rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstrap/48938155eb24b4ccdde09426066869504c6dab3c/dist/css/bootstrap.min.css">

     <title>Mern Gen</title>

  </head>

  <body>

<main id='root'>

  App has crashed

</main>

<script src="../public/bundle.js" 

type="text/javascript"></script>

</body>

</html>

目前我这样做是为了将两个文件都传送到 '/' url


bs := http.FileServer(http.Dir("public"))

http.Handle("/public/", http.StripPrefix("/public/", bs))


fs := http.FileServer(http.Dir("./static"))

http.Handle("/", fs)

我现在需要像这样使用 gorilla/mux 来匹配可变参数


r.HandleFunc("/loc/{id}", getLoc)

但如果我这样做,我还必须从默认的多路复用器更改为大猩猩路由器


r := mux.NewRouter()

bs := http.FileServer(http.Dir("public"))

r.Handle("/public/", http.StripPrefix("/public/", bs))


fs := http.FileServer(http.Dir("./static"))

r.Handle("/", fs)

这是行不通的。我收到一条错误消息,指出找不到我的 bundle.js。我如何使用大猩猩复用器做到这一点?


陪伴而非守候
浏览 81回答 1
1回答

波斯汪

您应该使用目录PathPrefix中的服务文件public:r := mux.NewRouter()bs := http.FileServer(http.Dir("public"))r.PathPrefix("/public/").Handler(http.StripPrefix("/public/", bs))fs := http.FileServer(http.Dir("./static"))r.Handle("/", fs)http.Handle("/", r)
随时随地看视频慕课网APP

相关分类

Go
我要回答