如何在该部分中版本文件?

时间:2010-08-11 17:35:33

标签: c# javascript asp.net html css

我在各种网站上看到开发人员如何通过指定类似于以下内容的查询字符串来编辑他们的css / javascripts文件:

<head>
    <link rel="stylesheet" href="css/style.css?v=1">
    <script src="js/helper.js?v=1">
</head>

怎么做的?这是一个好习惯吗?我一直在寻找,但显然,我不是在寻找合适的条款。如果重要,我正在使用ASP.NET。

编辑::我刚注意到(通过Firebug)如果我“版本化”我的文件(?v = 1),它们将始终加载并始终覆盖缓存。有办法吗?

提前致谢。

3 个答案:

答案 0 :(得分:4)

他们没有真正的版本。我们这样做是因为某些浏览器并不总是正确地请求样式表(它们甚至不会检查最后一次修改),因此要强制它们发出新请求,您可以在html文件中添加引用它的数字。这是一种黑客行为,但它确实有效。

答案 1 :(得分:2)

这有助于您在需要时进行缓存,并在您不需要时强制下载。文件根据其路径进行缓存。因此,如果路径相同,则可以从缓存中提取。但如果它们不同,因此是新版本,那么它就不会使用缓存,而是应该拉新文件。至少这就是我使用它的方式。

答案 2 :(得分:1)

他们这样做是为了让浏览器的缓存更可靠。您可以手动添加版本,并在每次更改文件时递增。这样浏览器认为它有一个新文件并且肯定会下载它。

我不知道如何在ASP.NET中自动执行此操作,例如Ruby on Rails检查文件上最后更改的时间戳,并将其作为版本号添加到文件中。我相信你能在ASP.NET中做类似的事情。