首页 > 后端开发 > Golang > 正文

如何通过 AJAX 调用在 Gin 路由器中提供静态文件?

Barbara Streisand
发布: 2024-11-04 05:46:29
原创
449 人浏览过

How to Serve Static Files in Gin Router with an AJAX Call?

在 Gin 路由器中提供对静态文件的访问

在本指南中,我们将解决在 Gin 服务器中提供 JSON 文件的挑战。此外,我们的目标是使用 JavaScript 调用 JSON 数据来实现 HTML 文件的定制。

应用程序结构由以下部分组成:

  • main.go:主逻辑文件
  • templates:包含 HTML 和 JSON 文件的目录

    • index.html:HTML 文件
    • web.json:JSON 文件

main.go 文件包含必要的导入并定义路由器。

<code class="go">package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

var router *gin.Engine

func main() {
    router = gin.Default()
    router.LoadHTMLGlob("templates/*")

    // Register custom route for serving static JSON file
    router.StaticFS("/web.json", http.Dir("./templates"))

    // Route for rendering the HTML template
    router.GET("/web", func(c *gin.Context) {
        c.HTML(
            http.StatusOK,
            "index.html",
            gin.H{
                "title": "Web",
                "url":   "/web.json",
            },
        )
    })

    router.Run()
}</code>
登录后复制

在index.html 中,JavaScript 代码使用提供的 URL 进行 AJAX 调用来检索JSON 数据。

<code class="html"><script>
    window.onload = function() {
        const ui = SwaggerUIBundle({
            url: "{{ .url }}",
            dom_id: '#swagger-ui',
            // ...
        })
        // End Swagger UI call region

        window.ui = ui
    }
</script></code>
登录后复制

通过指定用于提供 web.json 文件的 staticFS 路由,我们确保了 HTML 模板中 AJAX 调用的可访问性。这解决了之前遇到的获取错误。

以上是如何通过 AJAX 调用在 Gin 路由器中提供静态文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!