gpt4 book ai didi

go - revel 框架中的缓存失效

转载 作者:IT王子 更新时间:2023-10-29 02:15:49 25 4
gpt4 key购买 nike

我正在寻找一种在版本更改时使缓存的静态内容无效的方法。最好使用提交 ID 使之无效。反正有没有在 revel 框架中做到这一点?

如果它是自动的,我会更喜欢,但如果它是我必须编辑的一个地方,我可以忍受每次更新它。

我目前的策略是更改静态内容路由的名称以包含版本,但这需要进行多项更改。在感觉不自然的地方,例如在路由文件中。

最佳答案

您可以通过配置变量和拦截方法手动完成。

资源版本.go

在您的 Controller 文件夹中创建此文件:

package controllers

import (
"github.com/revel/revel"
)

// interceptor method, called before every request.
// Sets a template variable to the resourceVersion read from app.conf
func SetVersion(c *revel.Controller) revel.Result {
c.RenderArgs["resourceVersion"] = revel.Config.StringDefault("resourceVersion", "1")
return nil
}

初始化.go

在 init() 方法中,附加这一行:

revel.InterceptMethod(controllers.SetVersion, revel.BEFORE)

模板

在你的模板中,你想要使用资源版本的地方:

<link rel="stylesheet" type="text/css" href="/public/css/style.css?{{.resourceVersion}}">

应用程序配置文件

最后,您将更新它的地方 - 在开发部分上方添加此行以应用于开发和生产,或者在每个部分都有不同的部分,无论适合什么。

resourceVersion=20150716

我猜你可以创建一个脚本作为构建和发布过程的一部分,它会自动编辑这个配置变量。

关于go - revel 框架中的缓存失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com