Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何加上「;版本;查询字符串到网页静态资源的URL?_Php_Javascript_Css_Apache_Caching - Fatal编程技术网

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正如老话所说,分析它,看看它是否是应用程序的瓶颈。在我的任何网站上都没有引起我的关注。如果这是一个问题,您可能需要使用不同的度量。@alex
filemtime()
与从数据库读取相比(性能方面)如何?我可以在数据库中有一个包含版本信息的“静态资源”表。然后,我将手动运行一个脚本来更新该表(每当我更改静态资源时),PHP页面将从该表中检索
v
值。为每个页面请求的每个静态资源调用
filemtime()
是可以的?但是GET参数是经过计算的(我认为
filetime()
是个好主意),它(通常)静态地包含在HTML中,因此不会影响性能。@ŠimeVidas正如老话所说,分析它,看看它是否是应用程序的瓶颈。在我的任何网站上都没有引起我的关注。如果这是一个问题,您可能需要使用不同的度量。@alex
filemtime()
与从数据库读取相比(性能方面)如何?我可以在数据库中有一个包含版本信息的“静态资源”表。然后,我将手动运行一个脚本来更新该表(每当我更改静态资源时),PHP页面将从该表中检索
v
<link href="css/style.css" rel="stylesheet">