Golang杜松子酒:在同一个应用程序中提供JSON和静态文件

时间:2017-02-28 00:58:57

标签: go go-gin

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

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

我可以使用Gin模板为index.html提供服务,但无法弄清楚如何使用其他资源。

2 个答案:

答案 0 :(得分: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文件

注意:如果没有“资产”前的“ /”,它将无法正常工作

答案 1 :(得分:0)

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

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

您的终点将为http://myapp.com/assets/js/app.jshttp://myapp.com/assets/css/style.css check documentation

相关问题