我正在制作一个 api 并使用 swaggo/swag 构建一个 swagger 界面。以前,我使用 net/http 包,一切正常。
我切换到 julienschmidt/httprouter,但我无法使 swagger 界面再次工作。这是我的代码
package main
import (
"fmt"
"log"
"net/http"
"github.com/julienschmidt/httprouter"
httpSwagger "github.com/swaggo/http-swagger"
)
func main() {
router := httprouter.New()
router.ServeFiles("/api/doc/static/*filepath", http.Dir("api/swagger/static"))
router.HandlerFunc(http.MethodGet, "/api/doc/index.html", swaggerHandler)
// router.HandlerFunc(http.MethodGet, "/api/doc", swaggerHandler)
fmt.Println("Server on port 8080")
log.Fatal(http.ListenAndServe(":8080", router))
}
func swaggerHandler(w http.ResponseWriter, r *http.Request) {
swaggerFileUrl := "http://localhost:8080/api/doc/static/swagger.json"
handler := httpSwagger.Handler(httpSwagger.URL(swaggerFileUrl))
handler.ServeHTTP(w, r)
}
Run Code Online (Sandbox Code Playgroud)
我检查了swaggerFileUrl变量是否正确,并且我可以使用此 url 访问 json 文件。该界面是一个完整的空白页面,标题为“Swagger UI”。因为标题已被替换,所以我假设发生了一些事情,但我不知道问题是来自 httpSwagger 还是 httprouter。
编辑:问题是由于加载界面的 javascript 文件不存在而引起的。请参阅这个github 问题
我想使用 react-big-calendar,我使用 npm(版本 0.28.0)安装了该包,但我能够使用该组件,因为显然没有默认导出。确切的错误是
尝试导入错误:“react-big-calendar”不包含默认导出(导入为“BigCalendar”)。
如果我不应该使用默认导出,我在任何地方都找不到我应该导入的内容。我使用本教程来使其工作。我在互联网上搜索了类似的问题,但没有找到任何提供解决方案的内容。到目前为止,我的代码非常简约,因为我无法启动任何东西
import BigCalendar from 'react-big-calendar'
import moment from 'moment'
const MyComponent = props => {
const localizer = BigCalendar.momentLocalizer(moment)
return(
<div>
<BigCalendar localizer={localizer}/>
<div>
)
}
Run Code Online (Sandbox Code Playgroud)
预先感谢您的任何回复。