我刚刚遇到一个网站pagesource,并在标题中看到了这一点:
<link href="../css/style.css?V1" rel="stylesheet" type="text/css" />
我们真的可以将GET数据传递给css吗?我尝试搜索但发现除了使用PHP之外没有任何结果。任何人都可以在.css
之后帮助理解?V1我知道这个论坛是为了询问编程问题,但我决定问这个,因为我在搜索中没有找到任何结果
答案 0 :(得分:1)
首先,不能将GET参数传递给CSS。抱歉。那会很棒。
至于示例网址。它可以是由任何Web服务器生成的CSS页面(不必是PHP)。在这种情况下,服务器可以提供同一页面的不同页面或版本,这可能解释V1,版本1的含义。服务器还可以使用服务器端模板动态生成页面。这是Jade文档中的一个例子:
http://cssdeck.com/labs/learning-the-jade-templating-engine-syntax
它也可以用作缓存破坏程序,用于版本控制。每当您输入网址时,只有当浏览器还没有特定于该网址的缓存副本时,它才会尝试获取该网址。如果您对内容进行了更改(在本例中为css文件)并且您希望浏览器使用它而不是缓存版本,则可以更改URL并欺骗浏览器以认为它是未缓存的新资源,所以它将从服务器获取新内容。然后,V1可以具有作为注释的开发人员的语义含义(即我已经将此文件更改一次......两次......等)但实际上除了破坏缓存之外没有做任何事情。 This question addresses cache busting
答案 1 :(得分:1)
有不同的概念。
首先,它只是一个链接 - 它有一个名称,它可能有一个扩展名,但这只是人类的惯例,而不仅仅是服务器的资源标识符。一旦浏览器请求它,它就成为资源的服务器请求。然后,服务器决定如何处理此请求。它可能只是一个简单的文件,它只需要返回,它可能是服务器端脚本,必须由服务器端脚本解释器执行,或者基本上你能想象的任何其他东西。
同样,不要欺骗自己思考&#34;这是一个CSS文件&#34;,只是因为它有一个css
扩展名,或称为style
。
无论在服务器上运行什么,并实际回答请求,都会返回一些内容。然后这个东西被赋予了意义。它可能是CSS,可能是HTML,可能是JavaScript,也可能是图像或只是二进制下载。为了帮助浏览器了解它是什么,服务器返回Content-Type
标题。
如果没有给出内容类型,浏览器必须猜测它是什么。或者这位优秀的网络作者提供了一个关于期待什么作为回应的提示 - 在这种情况下,他给出了text/css
的提示。同样,这是客户端/浏览器应该如何解释返回的内容,而不是如何在服务器端创建该内容。
关于?V1
?这可能意味着不同的事情。也许用户可以为网站配置样式(主题),并且此方法用于分派不同的样式。或者它可以用于称为&#34;缓存破坏&#34; (查一下)。
答案 2 :(得分:0)
你可以传递任何你想要的东西;服务器决定如何处理数据。
毕竟,PHP不是创建服务器的唯一选择。如果我在Node.js中编写了一个服务器,为/css/style.css
设置一个路由,并根据给出的查询返回不同的东西,服务器和浏览器都不会打击眼睑。