3

我正在编写一个同时提供 REST API 和静态文件的 golang gin 应用程序。理想情况下,我应该将后端和前端逻辑分开,但在这种情况下,我必须将它们放在一起。例如,API 的顶级路径是通配符,如http://myapp.com/{username}/{topic },同样的端点也可以提供一些保留的静态资源,如http:// myapp.com/js/app.jshttp://myapp.com/css/style.css

我知道这不是最佳实践,我应该将前端代码分开,但在我的案例中还有一些其他非技术挑战。Gin 有一种方法可以从文件夹中提供静态文件,但我想提供指向一些已知资源(JS、CSS、字体等)的特定“保留”路径。我怎么能用 GIN 做到这一点?

我可以使用 Gin 模板为 index.html 提供服务,但不知道如何使用其余资源。

4

2 回答 2

5

将文件放在相应的文件夹中(例如.css,css 文件夹中的.js文件,js 文件夹中的文件等)并将所有这些文件夹放在 assets 文件夹中。并使用

router := gin.Default()
router.Static("/assets", "./assets") 

您的终点将是http://myapp.com/assets/js/app.js,或http://myapp.com/assets/css/style.css 检查文档

于 2017-02-28T05:03:32.937 回答
1
go get https://github.com/gin-contrib/static

然后导入它:

import (

 "github.com/gin-contrib/static"
  
 )

用这个:

router.Use(static.Serve("/assets", static.LocalFile("./templates", false)))

在模板中创建一个 css 和 js 文件夹并将 .css 和 .js 文件放在那里

  <link rel="stylesheet" href="/assets/css/{FileName}.css">

加载 .css 文件

注意:如果没有“assets”之前的“/”,它将无法工作

于 2020-08-19T22:20:37.893 回答