- 工具**:JetBrains的Webstorm 10.0.4-这是一个非常新的安装,没有插件。第43章.该项目是香草html,css和js。
- 问题**:在本地调试时,使用内置Web服务器时文件有时会缓存(我点击运行并打开Chrome到一个URL,该URL格式为:"")。按f5将显示缓存的版本,但cntl-f5将获取当前版本。
- 详情**:请求头包含“Cache-Control:max-age = 0”(无意义?在Chrome中使用"file:///C:/Users/[Username]/WebstormProjects/WebLayout/index.html"打开文件似乎没有这个问题,但在Web服务器版本上使用f5仍然会产生缓存版本。
- 尝试**:
1.正在编辑运行/调试配置。我看不出和我要找的东西有关。
1.我尝试查找Web服务器设置来手动设置响应头。"文件">"设置">>"生成执行部署">"部署"未配置服务器。我想这是用来远程推送的。
- 推测**:Chrome正在缓存Webstorm的Web服务器文件,因为它没有设置“无缓存”响应头。我找不到在哪里/如何设置这些选项。
- 当前修复**:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
- 样本表头**:一般:
Remote Address:127.0.0.1:9129
Request URL:http://localhost:9129/WebLayout/index.html
Request Method:GET
Status Code:200 OK
响应标题:
cache-control:private, must-revalidate
content-length:5674
Content-Type:text/html
date:Mon, 13 Jul 2015 20:43:19 GMT
last-modified:Mon, 13 Jul 2015 01:45:23 GMT
server:WebStorm 10.0.4
请求标头:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,en-GB;q=0.6
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:localhost:9129
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) ... Chrome/43.0.2357.132 Safari/537.36
2条答案
按热度按时间fykwrbwg1#
WebStorm内置服务器send 1)cache-control:“private,must-revalidate”2)last-modified:最后修改的文件。
我认为有两个可能的原因:1)WebStorm发送的文件上次修改不正确(我们使用虚拟文件系统)。index.html是在WebStorm内部还是外部编辑的?2)可能是Google Chrome的bug。在这种情况下,我们可以添加选项来禁用“如果修改,因为”支持并始终发送“过期:0”。
你能检查一下网络头吗?
vptzau2j2#
如果加载同一项目的旧版本,则始终会遇到此问题。
从我做的测试来看,我认为这就是发生的事情:Web服务器通过模块(项目)名称和相对路径识别文件并缓存它们。因此,如果您在系统的不同位置上有两个同名的项目,它们都有一个文件(例如:JS)具有相同的相对路径,对于内部Web服务器,它们是相同的文件。因此,如果您在项目1中运行一个使用JavaScript文件的html文件,而项目2恰好有一个时间戳更近的相同文件,项目1的HTML页面将加载项目2的javascript文件。
缓存甚至在重新启动时清除webstorm的所有缓存。
为了避免这个问题,你可以试试这些