我正在编写一个同时提供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提供服务,但无法弄清楚如何使用其他资源。
答案 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.js
或http://myapp.com/assets/css/style.css
check documentation