最近在学习浏览器的缓存机制,看到有一种方案,使用强缓存,资源名用文件名+md5来命名,实现资源的更新,对于这个方案有几点疑问:
是否每次修改了资源,都要在html中修改link标签,把url指向最新的资源。这样不会很麻烦吗?尤其是同一个资源被无数html引用的时候(所以会有类似的工具/脚本?)
浏览器也会缓存这个html文件,那么html文件自身如何更新呢?比如我用node写个服务器,可能一句app.use('/', index);
就好了,但是每次浏览器也会对html进行缓存,如果用到上述这种方案的话,是否应该在服务器这里做出改动,让所有返回的html文件,都不使用强缓存,这样每次就可以加载到最新修改的html了。(我也查看了几家大网站的F12,有的html就是200,比如百度和网易,新浪这种还是返回的304)
可以讲一讲详细的方案吗。。查看很多资料都是一句“资源名+md5命名,每次加载最新的资源”,初学者在实现上有些看不懂。。。
-> 1. リソースが更新されるたびに、HTML を更新する必要があります。たとえば、HTML ページはテンプレート エンジンであり、md5 ファイルのサフィックスは Webpack によって生成されます。レンダリングするだけです。
-> 2. 静的ファイルの場合、通常、ファイルの更新時間または etag が更新されていない場合は 304 を返します。更新されると、200 が返されます。HTML ファイルはサーバー上に配置され、ページをレンダリングしてリクエストごとに生成する必要がある場合は、CDN が (キャッシュから) 200 を生成します。通常は 200 です。
-> 3. プロセス全体は非常に面倒で、ビジネスやツールチェーンによって異なります。あまりにも複雑なので、ほとんどの人はそれについて話す気になれません。 、https://medium.com/@ okonechn...
など