最近我用Python解决了这个问题。以下是代码(很容易适应其他语言):
def import_tag(pattern, name, **kw):
if name[0] == "/":
name = name[1:]
attrs = ' '.join(['%s="%s"' % item for item in kw.items()])
try:
mtime = os.stat(os.path.join('/documentroot', name)).st_mtime
include = "%s?%d" % (name, mtime)
return pattern % (attrs, include)
except:
return pattern % (attrs, name)
def script(name, **kw):
return import_tag('<script %s src="/%s"></script>', name, **kw)
def stylesheet(name, **kw):
return import_tag('<link rel="stylesheet" type="text/css" %s href="/%s">', name, **kw)
这段代码基本上将文件的时间戳作为查询参数附加到URL中。调用以下函数:
script("/main.css")
会导致
<link rel="stylesheet" type="text/css" href="/main.css?1221842734">
当然,使用这种方法的好处在于您无需再次更改HTML内容,只需触摸CSS文件即可自动触发缓存失效。它运作得非常好,而且开销几乎不可感知。
ExpiresActive On ExpiresDefault "modification"
。 - Frank Conijn - Support Ukraineiframe.contentWindow.location.reload(true)
来有效地执行相同的操作。请参见 https://dev59.com/6XNA5IYBdhLWcg3wIqPr#22429796 的方法(4)-那是关于图片的,但同样适用。 - Doin