强制CSS Recache

nse*_*rle 6 css stylesheet

如果用户正在操作旧文件,有没有办法确定或强制重新缓存CSS文件?

Ric*_*dle 14

确保每个人重新加载新文件的唯一可靠方法是更改​​其URL.在没有实际重命名的情况下执行此操作的合理方法是使用随机字符串:

<link rel='stylesheet' href='/mystyles.css?random=87365835'>
Run Code Online (Sandbox Code Playgroud)

那是使用大锤破解坚果,并绕过所有存在的HTTP机制,但它绝对可以在任何地方使用,而其他技术都有警告.

编辑: @jitter:您不必为每个请求自动更改URL - 您可以将其基于CSS文件的时间戳,或者甚至只是在您想要确保重新加载CSS时手动更改它.

  • @jitter:如果我有/ viewCustomer?custId = 1和/ viewCustomer?custId = 2我当然不希望浏览器将这两个URL视为同一页面并仅缓存它的单个副本.您提出的意思是,如果我访问/ viewCustomers?custId = 1,我最终可能会得到/ viewCustomers的缓存副本?custId = 9,因为它比custId = 1更新.AFAIK浏览器总是(并且希望始终将)将每个完整的唯一URL(包括查询字符串)视为要缓存的唯一资源(忽略任何其他缓存指令和特定浏览器的缓存策略). (2认同)