Javascript 资源URL中的ETag或哈希,例如js、css、图像

Javascript 资源URL中的ETag或哈希,例如js、css、图像,javascript,asp.net,html,asp.net-mvc,browser-cache,Javascript,Asp.net,Html,Asp.net Mvc,Browser Cache,我想确保每次更改web应用程序中的资源(css、js和图像)时,它们都会被刷新,并保留相同的资源名称(这样我就不需要更改html中的引用)。所以我想至少有两个显而易见的解决方案: 在响应头中包含ETAG 在Url中包含哈希(ie/css/{Hash}/style.css) 我更喜欢第二个想法,因为可能一些旧的代理或浏览器会忽略etag-是这样吗?但在css中,将哈希放入图像的url要困难一些。最后,我想我会选择第一个图像选项,第一个和第二个css和js选项 你的想法是什么?第一个就足够了,如果资

我想确保每次更改web应用程序中的资源(css、js和图像)时,它们都会被刷新,并保留相同的资源名称(这样我就不需要更改html中的引用)。所以我想至少有两个显而易见的解决方案:

  • 在响应头中包含ETAG
  • 在Url中包含哈希(ie/css/{Hash}/style.css)
  • 我更喜欢第二个想法,因为可能一些旧的代理或浏览器会忽略etag-是这样吗?但在css中,将哈希放入图像的url要困难一些。最后,我想我会选择第一个图像选项,第一个和第二个css和js选项


    你的想法是什么?第一个就足够了,如果资源发生变化,每个相当现代的软件都会请求刷新资源。

    关于第二个,您可以使用Apache重写规则来实现这一点。我假设您可以使用您正在使用的任何编程语言对文件的修改/创建日期进行散列

    .htaccess

    重新启动发动机 重写基/
    重写规则^css/[^/]+/style.css$css/style.css[L]

    根据我的经验,浏览器/代理通常会尊重etag。然而,我通常发现我还需要设置最后修改的。还要确保etag格式正确,因为有些浏览器对此很挑剔。

    Apache?htaccess?这是asp.net,可能是windows。