我是一个开发团队的一员,他在单页应用程序上工作,这正成为一个开发的噩梦。目前我们的构建将所有JS文件缩小为一个文件,因此一旦部署它就可以快速轻松地进行缓存,但是在开发时我们每次刷新时都需要下载超过2000个单独的JS文件。
有没有人自己遇到过这个问题并找到了解决方法。
我想到的一个解决方案是,如果你可以缓存每个文件,但每次保存文件时,它也会破坏该文件的缓存。
目前人们正在使用的一种策略是减少他们的工作空间,但由于存在很多依赖关系,因此需要花费大量时间。
非常感谢任何有关此方面的帮助
答案 0 :(得分:1)
问题在于,当您执行F5或Ctrl + R(或使用您的浏览器检查工具)时,为获取文件而发送的标头会要求每个文件都没有缓存,并解释所有文件JS,假设您正在开发一个浏览器项目。
可能易于设置的解决方案是创建一个小型专用HTTP服务器,该服务器查看要提供的文件的修改日期,即使浏览器指定{{1},也只返回304 Not Modified
标头标题(这意味着请求的文件被浏览器缓存)。
情景:
客户端向您的localhost请求带有if-modified-since
标头的JS文件(第二次):8888
如果磁盘上的文件不是最近的,则文件服务器会发送304标题
如果文件较新,则文件服务器会对文件进行流式处理,并指定if-modified-since: Wed, 09 Dec 2015 12:18:00 GMT
和Date: Wed, 09 Dec 2015 12:20:00 GMT
编辑:所以这是一个很小的NodeJS文件服务器。只需安装NodeJS,添加cache-control: public, max-age:3600, must-revalidate
即可。将此文件创建为index.js,设置wwwpath变量,在index.js所在的文件夹中运行npm
(它是下面文件服务器的依赖项),并使用npm install node-static
执行程序(或Windows上的nodejs index.js
。
node index.js
它做什么?如果您在wwwroot中有一个文件myscript.js,请使用http://localhost:8080/myscript.js进行调用。如果刷新页面,服务器将在流式传输之前检查文件的编辑时间。