从网络文件共享提供文件时的浏览器缓存

Ell*_* B. 5 html browser caching http

据我了解,Web浏览器是否缓存项目取决于:

  1. 响应标头告诉浏览器做什么(例如,Cache-ControlExpires).
  2. 存在验证器(例如,ETag或Last-Modified标头).

对于从网络文件共享提供的文件,这有何不同?在不同的浏览器?考虑这个JavaScript包括:

<script type="text/javascript" src="\\SOMECOMPUTER\folder\file.js"></script>
Run Code Online (Sandbox Code Playgroud)

meta当涉及网络文件时,浏览器是否会遵守此标记?

<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 31 Dec 2011 11:12:01 GMT">
Run Code Online (Sandbox Code Playgroud)

我发现关于这个主题的文档很少.

gab*_*sch 1

仅当文件通过 HTTP 协议发送时才考虑 HTTP 标头。文件访问(本地和网络共享)不通过 HTTP,因此您无法用此控制缓存。

HTML 文件在带有元标记的部分中具有缓存控制<head>。因此,如果您想控制 .html 文件的缓存,就可以做到。不幸的是,上面的内容不适用于 .js 文件,您无法通过这种方式控制 js 文件缓存。

我会推荐2个选择:

  • 设置一个小型 HTTP 服务器,并从那里获取 .js 文件 - 这样您就可以通过 HTTP 标头控制缓存超时
  • 将 JavaScript 代码内联到 HTML 页面(在<script>...</script>标签中),并通过标签控制缓存<meta>。这样你就可以在 a 中加载这个文件<div src="\\server\cachedfile.html" \>- div 甚至可以在加载后隐藏。

我认为第二种方案更好,因为<meta>缓存控制更可靠,甚至更可控。