【问题标题】:How to add version number to JS file (because it loading old data in web from js file)如何将版本号添加到 JS 文件(因为它从 js 文件加载 Web 中的旧数据)
【发布时间】:2020-06-23 18:52:21
【问题描述】:

JS 示例:

<script src="{{ url_for('static', filename='scripts/openchat.js') }}"></script>

我注意到,当我在网络浏览器中检查源代码时,我会看到一些类似 myscript.js?er2dfsdsfsdf44455230099 的网站 我的文件结构

我做了很多谷歌,但我找不到任何正确的答案。 任何人都可以帮助解决这个问题。

【问题讨论】:

标签: javascript html python-3.x flask


【解决方案1】:

我认为动态创建脚本标签可以帮助你。请试试这个

<script>
  document.addEventListener("DOMContentLoaded", () => {
    const filenames = ["myscript.js", "myotherscript.js"];
    const body = document.body;

    for (const filename of filenames) {
      const script = document.createElement("script");

      script.src = `${filename}?${Date.now()}`;
      script.type = "javascript";

      body.appendChild(script);
    }
  });
</script>

【讨论】:

  • 我试试你的代码,它没有在控制台中显示任何内容,也没有加载
  • 要让这个脚本进入您的问题的上下文,您需要在 html 文档中对其进行测试。你是怎么试过的?
  • 您确定此代码有效吗,因为没有显示任何内容
  • 它不应该显示任何东西,检查 dom,它应该在关闭 body 标签之前添加一个脚本标签,为文件名数组中的每个脚本加上时间戳,这将使您的脚本具有不同的 src每次访问该页面时
  • 我只添加了那里,但它没有将 JS 文件带入负载
【解决方案2】:

我想也许你只需要硬重新加载你的网络浏览器。在互联网上搜索如何硬重新加载您的网络浏览器。因为我不知道你的浏览器,所以我现在不能告诉你。

【讨论】:

  • 是的,硬休息正在工作,但我要在代码中实现,所以我不必每次都进行硬重置
  • "ctrl +F5" 用于 PC 的硬重置,但是当我使用移动设备时会发生什么?
  • 我认为您可以在移动设备中检查元素并从那里重新加载
  • 但是如果其他人使用我的网站,所以我不能告诉他们在您的网络浏览器上进行硬重置。
  • 好吧,如果您的网站处于开发模式,您不能,但没有人应该使用您的网站。如果他们正在尝试调试,您​​可以以某种方式与他们联系。
【解决方案3】:

因为我使用flask url_for 方法来调用JS 文件,所以我找到了在我的JS 或CSS 文件中添加版本的手动解决方案。我找到了这个

<script src="{{ url_for('static', filename='scripts/openchat.js' , v='14') }}"></script>

但我想为此找到自动化方法,谢谢您的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2012-12-31
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多