【问题标题】:what is "index.js?v=xxx" for?“index.js?v=xxx”是干什么用的?
【发布时间】:2020-07-26 04:27:21
【问题描述】:

jupyter notebook在加载时导入一堆javascript文件,几乎都是.js?v=xxx的URL模式

我了解一些带参数的 URL 可以用于 http get 方法。

https://www.google.com/search?q=javascript

jupyter notebook 中的“index.js?v=xxx”是什么意思?

这里是/static/components/proptypes/index.js的一部分,点击here查看完整版

(function (global, factory) {
  if (typeof define === 'function' && define.amd) {
    define('PropTypes', ['exports', 'module'], factory);
  } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {
    factory(exports, module);
  } else {
    var mod = {
      exports: {}
    };
    factory(mod.exports, mod);
    global.PropTypes = mod.exports;
  }
})

我比较了

http://localhost:8888/static/components/proptypes/index.js?v=c40890eb04df9811fcc4d47e53a29604

http://localhost:8888/static/components/proptypes/index.js

它们没有任何区别。

function (global, factory)处理参数v吗?

https://code.jquery.com/jquery.js?v=c40890eb04df9811fcc4d47e53a29604https://code.jquery.com/jquery.js 是同一个文件,而 https://code.jquery.com/jquery-1.12.4.js 是新文件。

【问题讨论】:

  • 它可能是文件的哈希值或类似的指示符。考虑一下:如果文件发生更改,HTML 将返回使用新哈希(或其他标识符)的 URL。这是一个独特的资源名称,浏览器会立即请求新资源(例如脚本内容),即使网站使用缓存。虽然“v”是随请求一起发送的,但没有理由必须由服务器使用它(尽管它可能在支持多版本资源的情况下)。
  • 可能是为了 cache-busting

标签: javascript jupyter-notebook


【解决方案1】:

这取决于您编写应用程序的方式。我使用版本来强制下载更新的 javascript。否则浏览器将尝试使用现有缓存,应用程序将拒绝相应地工作。

【讨论】:

  • 谢谢。 “更新”是指最新版本吗?
  • 是的,最新版本。如果我想回滚也有帮助
  • 谢谢。 https://code.jquery.com/jquery.js?v=c40890eb04df9811fcc4d47e53a29604https://code.jquery.com/jquery.js 是同一个文件,而 https://code.jquery.com/jquery-1.12.4.js 是新文件。
  • 当您直接从 JQeury CDN 中选择时,您可以访问所有版本。您的网站是服务,但您的 javascript 文件不是。所以和我的一样(有一些例外)。因此,当我更新我的 javascript 文件时,我不会保留我的旧 javascript 版本,JQuery 尚未决定将 code.jquery.com/jquery.js 更新为最新版本。
【解决方案2】:
index.js?v=1.2

使 Fool 客户端浏览器从服务器重新加载它并清除旧文件的缓存。

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2016-10-30
    • 2017-11-03
    • 2014-12-20
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多