Php 如何加上「;版本;查询字符串到网页静态资源的URL?
我注意到堆栈溢出增加了Php 如何加上「;版本;查询字符串到网页静态资源的URL?,php,javascript,css,apache,caching,Php,Javascript,Css,Apache,Caching,我注意到堆栈溢出增加了?v=xxxxxxxxxxx: 添加到绑定到网页的脚本和样式表。这与缓存控制响应标头结合使用 Cache-Control max-age=604800 为这些静态资源发送的脚本,确保缓存相同的脚本或样式表(在浏览器中)一周 我想用这个技巧。您能告诉我如何将该查询字符串添加到URL中吗?我的源代码如下所示: <script src="js/script.js"></script> 及 我假设v的值由文件的最后修改值确定。这是否意味着对
?v=xxxxxxxxxxx
:
添加到绑定到网页的脚本和样式表。这与缓存控制
响应标头结合使用
Cache-Control max-age=604800
为这些静态资源发送的脚本,确保缓存相同的脚本或样式表(在浏览器中)一周
我想用这个技巧。您能告诉我如何将该查询字符串添加到URL中吗?我的源代码如下所示:
<script src="js/script.js"></script>
及
我假设
v
的值由文件的最后修改值确定。这是否意味着对于我的.php
网页的每个请求,我必须访问每个静态资源的上次修改信息?(我觉得这会对性能造成很大影响。)不同(版本)的页面模板将需要不同版本的.js和.css-因此您可以静态地将依赖版本字符串嵌入到页面tempalte中。不同(版本)页面模板将需要不同版本的.js和.css,因此您可以静态地将依赖版本字符串嵌入到页面模板中。通常,为了方便起见,我将filemtime()
附加为GET参数。有些人从版本控制中附加一个数字,例如修订号。通常,为了方便起见,我将filemtime()
作为GET参数附加。有些人会从版本控制中附加一个数字,例如修订号。我不确定页面模板是什么(在此上下文中),但我有一个article.php
页面,它根据ID生成不同的文章(例如article.php?ID=007
)。如何静态嵌入?我非常肯定,你的<代码>文章。PHP<代码>不会从硬编码的值中回响所有HTML,但是在代码>文章PHP<代码>文件中有一些静态HTML(有些人,包括我,考虑坏的风格),或者直接或通过模板解析引擎包含一些静态HTML。HTML呈现的静态部分是页面模板,我是说,是的。我的.php
文件几乎就是HTML代码。只有几个
块。(等等,这是一种糟糕的风格吗?)我不知道如何“静态嵌入依赖版本字符串”。你能解释一下吗?@ŠimeVidas som在你的HTML中有类似于
的东西,你可以用
替换它,而XXXXXXX是适合这个HTML的版本。一旦您更改(并测试)了JS或HTML的新版本,就可以很好地适应xxxxxxx,是的,这会起作用,但这也意味着无论何时更改绑定到它的任何静态资源,我都必须手动编辑PHP页面。这似乎不是一个合理的想法。我不确定页面模板是什么(在本文中),但我有一个article.php
页面,它根据ID生成不同的文章(例如article.php?ID=007
)。如何静态嵌入?我非常肯定,你的<代码>文章。PHP<代码>不会从硬编码的值中回响所有HTML,但是在代码>文章PHP<代码>文件中有一些静态HTML(有些人,包括我,考虑坏的风格),或者直接或通过模板解析引擎包含一些静态HTML。HTML呈现的静态部分是页面模板,我是说,是的。我的.php
文件几乎就是HTML代码。只有几个
块。(等等,这是一种糟糕的风格吗?)我不知道如何“静态嵌入依赖版本字符串”。你能解释一下吗?@ŠimeVidas som在你的HTML中有类似于
的东西,你可以用
替换它,而XXXXXXX是适合这个HTML的版本。一旦您更改(并测试)了JS或HTML的新版本,就可以很好地适应xxxxxxx,是的,这会起作用,但这也意味着无论何时更改绑定到它的任何静态资源,我都必须手动编辑PHP页面。这似乎不是一个合理的想法。我关心的是性能。为每个页面请求的每个静态资源调用filemtime()
是可以的?但是GET参数是经过计算的(我认为filetime()
是个好主意),它(通常)静态地包含在HTML中,因此不会影响性能。@ŠimeVidas正如老话所说,分析它,看看它是否是应用程序的瓶颈。在我的任何网站上都没有引起我的关注。如果这是一个问题,您可能需要使用不同的度量。@alexfilemtime()
与从数据库读取相比(性能方面)如何?我可以在数据库中有一个包含版本信息的“静态资源”表。然后,我将手动运行一个脚本来更新该表(每当我更改静态资源时),PHP页面将从该表中检索v
值。为每个页面请求的每个静态资源调用filemtime()
是可以的?但是GET参数是经过计算的(我认为filetime()
是个好主意),它(通常)静态地包含在HTML中,因此不会影响性能。@ŠimeVidas正如老话所说,分析它,看看它是否是应用程序的瓶颈。在我的任何网站上都没有引起我的关注。如果这是一个问题,您可能需要使用不同的度量。@alexfilemtime()
与从数据库读取相比(性能方面)如何?我可以在数据库中有一个包含版本信息的“静态资源”表。然后,我将手动运行一个脚本来更新该表(每当我更改静态资源时),PHP页面将从该表中检索v
值
<link href="css/style.css" rel="stylesheet">