You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派环境下jQuery读取旧文件、Windows端运行正常的问题求助

根因定位

你遇到的“修改源文件、重启整个服务都读不到最新内容”的现象,本质是浏览器的静态资源本地缓存机制,和树莓派运行环境、现有代码逻辑本身无关:

  • Windows测试阶段表现正常,是因为当时测试过程大概率开了浏览器开发者工具的“禁用缓存”选项,或是测试间隔久、本地缓存自然过期,才没有暴露缓存问题;
  • 树莓派长期运行后,浏览器第一次拉取./assets/current.txt时,会按照默认静态资源缓存规则把文件内容存在本地磁盘,后续所有同路径的GET请求会直接读本地缓存,根本不会向服务端发起新的文件读取请求,哪怕你更新了源文件、重启了Web服务,只要浏览器缓存没过期,拿到的永远是第一次加载的旧内容。
    你之前排查重复文件、路径错配的操作方向是对的,但这个缓存问题很容易被误判成路径错误。可以通过F12打开开发者工具,在网络面板刷新页面查看current.txt的请求状态,如果显示200 from disk cache,就可以100%确认是缓存导致的问题。
可直接落地的解决方案
  • 最快速的改法:给jQuery请求的URL加唯一时间戳破缓存,不需要修改服务端配置。把原来的请求代码:
    $.get('./assets/current.txt', function(data) {
    调整为:
    $.get('./assets/current.txt?t=' + Date.now(), function(data) {
    后缀的t参数服务端不需要做任何逻辑处理,纯粹是让浏览器识别为全新的资源路径,跳过本地缓存校验,每次都会向服务端拉取最新的文件内容。
  • 长期稳定的改法:如果是你自己搭建的本地Web服务,可以在返回current.txt内容时,手动加上三个禁止缓存的HTTP响应头:
    • Cache-Control: no-cache, no-store, must-revalidate
    • Pragma: no-cache
    • Expires: 0
      配置完成后,浏览器永远不会对这个文本文件做本地缓存,每次加载都会实时同步最新内容。
  • 额外提醒:现有代码里有个笔误,页面展示下载速率的标签写成了dowload(单词拼写少了一个n),不影响核心功能,但后续排查问题时容易造成误解。

内容的提问来源于stack exchange,提问作者Manu1800

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 00:45:03