HTML链接标签中的问号是什么?

4
如果您有一个链接或脚本标签,指向CSS或JS文档,并且URL中有类似于?1的内容,那么这是什么意思?例如:
<script src="home.js?1" type="text/javascript"></script>

一个基础问题...


你的意思是像这样吗:http://www.example.com/docs.php?docid=47抱歉,当我第一次看到它时,示例是空白的... - William Salzman
7个回答

11

这是用于缓存的目的。例如,下次脚本更新时,开发人员可以在末尾添加?2,浏览器将获取新版本而不是缓存的版本。


浏览器/HTTP服务器不应该通过Last-Modified / Etag标头自动补偿这个吗? - jdizzle

7

它表示查询字符串的开始,用于传递值,或仅为了创建URL的随机部分以避免缓存结果。

在您的示例中,用户很可能会添加新值来不断创建唯一的URL,最终到达相同的位置,并请求相同的内容。


1

问号后面的部分被称为查询字符串。

当服务器将请求映射到磁盘上的文件时,查询字符串会被忽略,但它可以被服务器端脚本使用。

在这种情况下,查询字符串被用于避免缓存。
当脚本被更改时,查询字符串可以被更改为?2,这样它就不会使用缓存中的先前版本。


1

这只是防止缓存。通常浏览器会缓存这些文件,因此添加一个?加上一个随机数将使浏览器将其视为不同的URL,从而重新加载文件。虽然大多数浏览器使用Ctrl+R重新加载缓存文件,但这并不是必需的。


1

紧随问号后面的是查询字符串。它用于向src文件传递参数,有时还会通过在文件字符串中添加随机数来防止缓存,以强制浏览器从服务器获取。


1
'?'符号分隔URL的资源标识符和查询参数。我不确定我的命名是否正确。通常,CMS会在URL中添加?1来避免元素被浏览器缓存。每次编辑CSS时,数字将增加到下一个值,以确保浏览器重新加载CSS、脚本或其他内容。

0

?符号用于分隔URL和参数。参数会跟在?符号后面。在?符号后,您应该使用&来分隔多个参数。例如:www.google.com?q=URL&language=en


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接