为什么要传递参数到CSS和JavaScript链接文件,如src =“../ cnt.js?ver = 4.0”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (86)

当我看到很多网站的源代码时,参数被传递给链接文件(CSS / JavaScript)。

在堆栈溢出源中,我得到了

<script type="text/javascript" src="http://sstatic.net/js/master.js?v=55c7eccb8e19"></script> 

为什么master.js?v=55c7eccb8e19使用?

我相信JavaScript / CSS文件无法获取参数。

是什么原因?

提问于
用户回答回答于

正如其他人所说的那样,这可能是一种控制缓存的尝试,但我认为最好通过更改实际资源名称(foo.v2.js而非foo.js?v=2)而不是查询字符串中的版本来实现。(这并不意味着你必须重命名文件,有更好的方式将该URL映射到底层文件。)这篇文章虽然四岁,因此在网络世界中很古老,但仍然是一个非常有用的讨论。其中,作者声称你不想使用查询字符串的版本,因为:

......根据HTTP缓存规格的信,用户代理应该永远缓存与查询字符串的URL。虽然Internet Explorer和Firefox忽略了这一点,但Opera和Safari不会......

这种说法可能并不完全正确,因为规范实际上说的

...因为一些应用程序传统上使用带有查询URL(在rel_path部分中包含“?”的GETs和HEAD)来执行具有显着副作用的操作,所以缓存不应将对这种URI的响应视为新鲜,除非服务器提供显式到期时间 ...

(最后强调的是我的。)因此,只要您还包括显式缓存标头,那么在查询字符串中使用版本就可以。提供浏览器正确执行上述操作。和代理服务器。你明白了为什么我认为你在实际资源定位器中使用版本更好,而不是查询参数(这[再]] 并不意味着你必须不断重命名文件;请参阅上面链接的文章以获取更多信息)。你知道浏览器,代理等沿途会,如果你改变它的名字,这意味着你可以给以前的“名”永无止境的缓存时间,最大限度中间缓存的利益来获取更新的资源。

关于:

我相信Js / CSS文件不能获取参数。

仅仅因为返回的结果是JavaScript或CSS资源,并不意味着它是服务器文件系统上的文字文件。服务器可以根据查询字符串参数进行处理,并生成自定义的JavaScript或CSS响应。没有理由我无法配置我的服务器将所有.js文件路由到(例如)查看查询字符串的PHP处理程序,并返回一些自定义的字段以匹配给定的字段。因此,如果我建立了我的服务器来完成这个工作,情况foo.js?v=2可能会有所不同foo.js?v=1

热门问答

我刚申请的服务器,缺省给我的是linux,可我要Windows,怎么办?

蒋小爱

腾讯云 · 技术支持 (已认证)

推荐
云服务器提供 不同平台重装:仅支持中国大陆地区(不含中国香港)。 例如,Linux 重装为 Windows,Windows 重装为 Linux 。 参考 重装系统: https://cloud.tencent.com/document/product/213/4933 图片.p...... 展开详请

合作伙伴学院里的学习视频测试题和在线培训系统里的测试题能否提供答案?

骑牛看晨曦love&peace~
推荐

http://tencentcloudxuexi.com 合作伙伴可以登录此平台做练习题,有答案的喔

关于Linux DNS服务器设置问题?

mariolu

腾讯 · 后台开发工程师 (已认证)

CDN及云从业者
推荐

CNAME到XX.com,这个XX.COM本身也是需要能解析ip的。CNAME到XX.COM的意义是你能解析到CDN厂商A的域名XX.COM或者CDN厂商B的域名YY.COM。所以需要提供服务的CDN厂商给你他们的域名。这样,DNS查询链路才是完整的。

云服务器不能访问外部网站?

HappyLau谈云计算

腾讯云 · 云计算高级工程师 (已认证)

专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐
不能访问外部网站一般是网络和dns的问题,按照如下步骤排查: 1. 确保CVM有外网ip或者NAT转换,使用ping测试下外网的连通性,如果不通请购买弹性公网IP,先申请后购买参考https://cloud.tencent.com/document/product/215/201...... 展开详请

两台腾讯云的服务器在同一个地区,内网网段也相同,都是172.17.0.X,为啥ping内网地址不通?

HappyLau谈云计算

腾讯云 · 云计算高级工程师 (已认证)

专注于公有云,私有云解决方案,在kubernetes,openstack,kvm,ceph,linux,shell有丰富的实战经验。
推荐已采纳

首先看下两台机器是否在同个vpc内,在同个vpc内默认网络可以互通,如果不在同个vpc内需要通过对等连接或者云联网打通,如果在同个vpc下无法互通,请检查下安全组和os的防火墙规则,放行icmp连接。

求问keil5项目无法下载到开发板该怎么解决?

Supowang

腾讯 · 高级工程师 (已认证)

腾讯物联网操作系统TencentOS tiny产品接口人---岁寒知松柏,做最好的自己!
推荐
请检查st-link的驱动和stlink硬件,如果不行,尝试换其他stlink下载器试试,谢谢! 如果还没有解决,请加TencentOS tiny官方QQ群提问,谢谢! qq.png ... 展开详请

所属标签

扫码关注云+社区

领取腾讯云代金券