Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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/6/eclipse/9.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
Javascript 推荐的缓存控制方法?_Javascript_Css_Dependencies - Fatal编程技术网

Javascript 推荐的缓存控制方法?

Javascript 推荐的缓存控制方法?,javascript,css,dependencies,Javascript,Css,Dependencies,我希望强制刷新JS/CSS依赖项 会起作用吗,还是只会强制刷新页面本身的内容?您可以使用服务器端语言将时间戳附加到要拉入的每个文件: <?php $timestamp = time(); ?> <link href="shell.css?timestamp=<?=$timestamp?>" rel="stylesheet" type="text/css" /> 上面的答案是有效的,尽管我可能更愿意在最后使用?version=1,这样在没有更改时它会缓存。此

我希望强制刷新JS/CSS依赖项


会起作用吗,还是只会强制刷新页面本身的内容?

您可以使用服务器端语言将时间戳附加到要拉入的每个文件:

<?php $timestamp = time(); ?>
<link href="shell.css?timestamp=<?=$timestamp?>" rel="stylesheet" type="text/css" />


上面的答案是有效的,尽管我可能更愿意在最后使用
?version=1
,这样在没有更改时它会缓存。此外,设置Web服务器缓存策略也是有效的


这是一篇解释网页缓存的好文章:

不,它只控制当前文档。如果您不想使用带有随机查询字符串的丑陋URI,那么是时候配置您的服务器了。假设Apache:

# mod_expires directives: 
# enable expires/max-age headers and set default to 0 seconds from last access time
ExpiresActive On
ExpiresDefault A0
# configure ExpiresByType on your specific types, eg ExpiresByType text/css A0



# mod_headers directives:
# send variety of no-cache directives, should cover any quirky clients and gateways
Header set Cache-Control "max-age=0, private, no-cache, no-store, must-revalidate, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
# enclose this in <Files> directive for specific file eg <Files *.js>
#mod#u expires指令:
#启用expires/max age标头,并将默认值设置为距离上次访问时间0秒
过期于
到期默认A0
#在特定类型上配置ExpiresByType,例如ExpiresByType文本/css A0
#mod_头指令:
#发送各种无缓存指令,应涵盖任何古怪的客户端和网关
标题集缓存控制“最大年龄=0,专用,无缓存,无存储,必须重新验证,代理重新验证,无转换”
标题集Pragma“无缓存”
#将此附在特定文件的指令中,例如

如果满足以下要求,这些指令组也将在每个目录配置(
.htaccess
文件)中工作(在共享环境托管的情况下):

  • AllowOverride文件信息
    生效
  • mod_expires
    mod_headers
    已启用
  • 如果两者都已启用-请注意,组在
    最大年龄上重叠
    ,您将希望将其从
    标题
    中删除,并通过
    ExpiresXXXX
    使用更精细的控制。
    所述设置对于共享托管环境非常常见,因此请询问服务器管理员或自己尝试(如果未启用相应的模块,将返回
    500内部服务器错误
    ,如果未启用
    。htaccess
    处理则无效)

    正确。使用文件的修改日期(而不是当前时间)可能更有意义,因此仅在需要时重新加载文件,而不是在每次加载页面时重新加载。不是我的服务器。。。doh.:)我最喜欢这个方法,尽管我不能使用它。@Michael,对不起,我没有提到。htaccess for shared hostings,更新了。