为了账号安全,请及时绑定邮箱和手机立即绑定

在 HTTP 服务器中提供静态文件

在 HTTP 服务器中提供静态文件

Go
慕容森 2022-06-13 15:11:26
我正在使用 golang 作为中型 Web 应用程序的后端,该应用程序在不同的文件夹中有几个页面和大量 CSS 和 javascript,我正在尝试使用 golang 为网站提供服务,但只加载索引文件,另一个页面、javascript、CSS 不加载。因为我的 HTML 文件彼此不同,所以我没有使用模板这是文件结构-static     -assets        -css(folder with subfolders)        -js(folder with subfolders)    -pages (folder with differnt html pages)         -signup.html         -dashboard.html    -index.html    -register_bundle.js-main.gofunc handlerequests (){ myRouter := mux.NewRouter().StrictSlash(true) myRouter.Handle("/", http.FileServer(http.Dir("./static"))) myRouter.HandleFunc("/transaction", transactionHandler) log.Fatal(http.ListenAndServe(":8080",myRouter))}我的 HTML 文件有这样的链接,(显示 index.html)<!-- CSS Files -->  <link href="./assets/css/bootstrap.min.css" rel="stylesheet" />  <link href="./assets/css/paper-dashboard.css?v=2.1.1" rel="stylesheet" /><!--JS files -->  <script src="./assets/demo/demo.js"></script>  <!--Main Script file for the page  -->  <script src="./register_bundle.js"></script>此处显示的错误
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

问题是浏览器找不到那些 JS 和 CSS 文件。

    fs := http.FileServer(http.Dir("./static"))
    MUXRouter.Handle("/", fs)
    MUXRouter.PathPrefix("/assets/").Handler(fs)
    MUXRouter.PathPrefix("/pages/").Handler(fs)
    MUXRouter.Handle("/register_bundle.js", fs)

这样一个 GET 请求http://[host]:[port]/css/style.css将从相关./static/css/目录返回 style.css。上面的代码在我的示例程序中运行。


查看完整回答
反对 回复 2022-06-13
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

尝试


gor:= mux.NewRouter().StrictSlash(true)


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

gor.PathPrefix("/transaction").Handler(fs)

如果它不只是尝试阅读 http.FileServer 的文档,它可能应该工作


查看完整回答
反对 回复 2022-06-13
?
慕仙森

TA贡献1827条经验 获得超8个赞

您是否尝试为您的资源文件夹提供处理程序?


sdir := "/resources/"

myRouter.PathPrefix(sdir).Handler(http.StripPrefix(sdir, http.FileServer(http.Dir("."+sdir))))

这允许您将文件夹作为子域访问。


查看完整回答
反对 回复 2022-06-13
  • 3 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号