收藏
回答

微信公众号H5页面缓存无法更新?

vue项目编译部署之后,部分手机无法更新到最新的版本,访问的还是之前的版本,试过多种方法都无法清除缓存,请问要怎样才能清除缓存呢

回答关注问题邀请回答
收藏

16 个回答

  • Au
    Au
    2021-04-22

    楼主,你可以按下面的步骤这样试试:

    ①在网页头部添加以下内容

    <META HTTP-EQUIV="pragma" CONTENT="no-cache">

    <META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">

    ②打包时在JS、css资源名里添加hash以及时间戳

    ③访问网页时在后面缀上随机数参数报证访问地址不一样。

    依次做完①②③步就可以了,然后你会发现啥用没有。

    2021-04-22
    有用 9
    回复 4
    • 空兔
      空兔
      2021-10-10
      最后一句话要不要这么直白
      2021-10-10
      1
      回复
    • YouKnowEggs
      YouKnowEggs
      2022-06-08
      玛德,我全做完了,发现没用,专门登上来准备骂你,才看见最后一句😰
      2022-06-08
      回复
    • 🇨🇳 👍
      🇨🇳 👍
      2023-05-30
      我认认真真的看完了,然后我想揍你
      2023-05-30
      回复
    • 剑锋
      剑锋
      2023-12-25
      应该是之前的index.html已经被缓存了,你后面不论怎么设置也没用,用户访问的依然是之前的index.html。
      2023-12-25
      回复
  • Frank
    Frank
    2021-07-06

    楼主现在解决了吗

    2021-07-06
    有用 4
    回复
  • wwwwwwr_r
    wwwwwwr_r
    2021-03-05
    vue项目中配置文件vue.config.js添加以下试试
    
    const Timestamp = new Date().getTime();
    module.exports = {
      configureWebpack:{
        output: { // 输出重构  打包编译后的 文件名称  【模块名称.时间戳】
          filename: `js/[name].${Timestamp}.js`,
          chunkFilename: `js/[name].${Timestamp}.js`
        }
      }
    }
    
    2021-03-05
    有用 3
    回复 1
    • 茶客。
      茶客。
      2021-08-02
      这个会导致每次编译会重新复制一份js吧
      2021-08-02
      回复
  • 望烁
    望烁
    2022-01-27

    官方还没有解决方法吗

    2022-01-27
    有用 2
    回复
  • 嗯,阿胐。
    嗯,阿胐。
    2021-04-11

    这么多年了,还是没有解决!

    2021-04-11
    有用 2
    回复
  • 疯狂的小波
    疯狂的小波
    2022-05-17

    刚好最近也遇到了这个问题,整理了下,可以参考下这个文档。https://juejin.cn/post/7098522027291574280

    2022-05-17
    有用 1
    回复
  • 恭囍發財@超明
    恭囍發財@超明
    2021-05-13

    nginx服务器解决微信h5文件缓存问题的方法

    修改nginx配置,不缓存htm/html文件

    在location里添加 if语句

    ```js

    if ($request_filename ~ .*\.(htm|html)$)

    {

        add_header Cache-Control no-cache;

    }

    ```

    其他代码不用加,只加以上的。

    例如

    ```js

    location / {

        access_log /data/nginx/log/xxx.log api;

        root /home/www/html;

        if ($request_filename ~ .*\.(htm|html)$)

        {

            add_header Cache-Control no-cache;

        }

    }

    ```

    2021-05-13
    有用 1
    回复
  • 风禾
    风禾
    2021-03-05

    http协议的协商缓存吧。正常情况vue打包之后,index.html中引用的文件哈希值会变,所以不会有缓存,所以只要保证在访问index.html文件时不缓存就可以了。

    2021-03-05
    有用 1
    回复 1
    • 风继续吹
      风继续吹
      2021-03-05
      应该是html静态文件给缓存了,目前试过域名拼接参数,退出微信重登,还有添加协议的缓存时间设置为0都没生效
      2021-03-05
      回复
  • 阿金
    阿金
    2023-09-25

    所以现在有解决办法么

    2023-09-25
    有用
    回复
  • 3
    3
    2023-08-08
    if (!/t=[1-9]+/.test(location.href)) {
      location.replace(location.href + ['?', '&'][+location.href.includes('?')] + `t=${Date.now()}`)
    }
    
    2023-08-08
    有用
    回复

正在加载...

登录 后发表内容
问题标签