Gin+Tailwind CSS 服务器渲染

如果是由Gin渲染,首先应考虑gin的目录结构:

├── static/ # gin指定的静态目录
│ ├── tailwind.css # css文件

├── templates/ # gin的模板目录
│ ├── layout.html#主模板文件
│ ├── index.html #网页文件

#如果有自写包要放入文件夹,导入的时候写<项目文件夹>/<包文件夹>
├── routers/
│ ├── router.go #自写包文件

├── main.go #go程序运行主文件

├── tailwind.config.js #tailwind配置文件

├── go.sun等其他go程序文件和tailwind文件

指定tailwind的配置文件:

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./templates/*.html", "./static/**/*.{css,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

tailwind.css文件:

@tailwind base;
@tailwind components;
@tailwind utilities;

main.go的示范:

package main

import (
    "github.com/gin-gonic/gin" //导入gin包
)

func main() {
    r := gin.Default()
    r.LoadHTMLGlob("templates/*")       //加载html模板全局,指定templates目录下的所有文件
    r.Static("/static", "./static")           //静态文件处理,参数:路由,本地路径
    r.GET("/", func(ctx *gin.Context) { //定义了一个路由和方法,定义了一个*gin.Context的上下文参数,类似django视图的request参数
        ctx.HTML(200, "index.html", gin.H{"nihao": "哈哈"}) //指定了index.html文件和需要传给模板的变量
    })
    r.Run(":80") // 启动HTTP服务器,监听端口80
}

layout.html主模板示范:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试标题</title>
    <link href="./static/index.css" rel="stylesheet">
</head>
<body>
    <div class="text-sm text-gray-900">
        <nav class="flex items-center px-4 py-3 bg-gray-900 justify-between">
            <div class="text-white">模板3</div>
            <div class="text-white">{{ .nihao }}</div>
            
        </nav>
    </div>
    <div>上面是主模板顶部内容</div>
    {{block "main" .}}{{end}}
    <div>这里是柱模板底部内容</div>
</body>
</html>

index.html子模板示范:

{{template "layout.html"}}
{{define "main"}}
这里是index内容
{{end}}

go需要用到的命令:

go mod init myapp
#以当前目录为项目目录并创建go.sum文件,myapp可以任意名字

go run . #调试运行
go mod tidy #会修改go.sum和go.mod文件确保依赖与实际一致

tailwindcss常用命令:

npm install -D tailwindcss #安装

npx tailwindcss init #初始化

npx tailwindcss -i ./static/tailwind.css -o ./static/index.css
#指定参考文件为tailwind.css,而构建的文件为index.css

npx tailwindcss -i ./static/tailwind.css -o ./static/index.css --watch
#实时构建