如何在Visual Studio中debugging时强制Chrome浏览器重新加载.css文件?

我目前正在编辑Visual Studio 2012中的.css文件(在debugging模式下)。 我使用Chrome作为浏览器。 当我在Visual Studio中对应用程序的.css文件进行更改并保存时,刷新页面将不会加载我的.css文件中已更新的更改。 我认为.css文件仍然被caching。

我努力了:

  1. CTRL / F5
  2. 在Visual Studio 2012中,转到项目属性,Web选项卡在开始操作部分中select启动外部程序粘贴或浏览到Google Chrome的path(我的是C:\ Users \ xxx \ AppData \ Local \ Google \ Chrome \ Application \ chrome.exe)在命令行参数框中input-incognito
  3. 使用Chrome开发者工具,点击“齿轮”图标,选中“禁用caching”。

除非手动停止debugging,否则似乎没有任何工作(closuresChrome),重新启动应用程序(在debugging中)。

有什么办法强制Chrome始终重新加载所有的CSS更改并重新加载.css文件?

更新:
1.刷新时,我的.aspx文件中的内嵌样式更改被选中。 但.css文件中的更改不会。 2.这是一个ASP.NET MVC4应用程序,所以我点击一个超链接,做一个GET。 这样做,我没有看到样式表的新请求。 但是单击F5,.css文件被重新加载,并且状态代码(在networking选项卡上)是200。

有更复杂的解决scheme,但一个非常简单的方法就是随机查询string添加到您的CSS包含。

src="/css/styles.css?v={random number/string}"

如果您使用的是PHP或其他服务器端语言,则可以使用time()自动执行此操作。 所以它会是styles.css?v=<?=time();?>

这样,查询string将会每一次都是新的。 就像我说的那样,有更复杂的解决scheme更具有dynamic性,但是在testing中,这种方法是顶级的(IMO)。

强制使用chrome实现css和js:

Windows选项1: CTRL + SHIFT + R
Windows选项2: SHIFT + F5

OS X: + SHIFT + R

更新如@PaulSlocum在评论(许多证实)


原始答案:

Chrome改变了行为。 Ctrl + R将做到这一点。

在OS X上: + R

如果您在重新加载css / js文件时遇到问题,请在重新加载之前打开检查器( CTRL + SHIFT + C )。

我发现的最简单的方法是在Chrome DevTools设置中。 点击DevTools右上方的齿轮图标(或更新版本中的3个垂直点)打开“设置”对话框。 在那里,勾选方框:“禁用caching(DevTools打开时)”

就我而言,在Chrome DevTools设置中,只需设置“禁用caching(DevTools打开时)”不起作用,则需要检查源代码中列出的“启用CSS源图”和“自动重载生成的CSS”组,使这个caching问题消失。

你正在处理浏览器caching的问题。

禁用页面本身的caching。 这不会在浏览器/caching中保存页面的支持文件。

 <meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="expires" content="Tue, 01 Jan 1990 12:00:00 GMT" /> 

您需要/需要将此代码插入到您正在debugging的页面的标签中,或者插入到您网站的master page的标签中

这将不允许浏览器caching文件,最终文件将不会被存储在浏览器的临时文件,所以没有caching,所以不需要重新加载:)

我相信这会做:)

SHIFT + F5

它使用Chrome 54版本为我工作。

使用macOS,我可以强制Chrome浏览器重新加载CSS文件

+ SHIFT + R

发现这个答案埋在这里的评论,但值得更多的曝光。

当您重新加载页面(Command + R)时,当前版本的Chrome(55.x)不会重新加载所有资源,并且这对debugging.css文件没有用处。

如果您只想debugging.html,.php,.etc文件,Command + R可以正常工作,而且由于使用本地/caching资源(.css,.js),因此速度更快。 为每个debugging迭代手动删除浏览器的caching并不方便。

在Mac上强制重新加载.css文件的过程(键盘快捷键/ Chrome):Command + Shift + R

我知道这是一个古老的问题,但如果任何人仍然在寻找如何重新加载一个外部的CSS / JS文件,现在在Chrome最简单的方法是:

  1. 转到DevTools的“ networking”选项卡
  2. 右键单击资源并select重播XHR重复请求

确保选中禁用caching选项来强制重新加载。

我在这里面临同样的问题! 但我确定,我的决议比以上所有例子都好,只要做到这一点,

  1. 通过按F12拉起Chrome开发者控制台
  2. 右键单击浏览器顶部的重新加载button,然后select“清空caching和硬重新加载”。

这就是它!

为什么需要刷新整个页面? 只刷新只有CSS文件,而不重新加载页面。 例如,当你必须等待数据库的长时间响应时,这非常有帮助。 从数据库获取数据并填充页面后,编辑您的css文件并在Chrome(或Firefox)中重新加载它们。 要做到这一点,你需要安装CSS Reloader扩展 。 Firefox版本也是可用的。

您可以将此脚本复制到Chrome控制台,并强制您的CSS脚本每3秒重新加载一次。 有时我发现它在改进CSS样式时很有用。

 var nodes = document.querySelectorAll('link'); [].forEach.call(nodes, function (node) { node.href += '?___ref=0'; }); var i = 0; setInterval(function () { i++; [].forEach.call(nodes, function (node) { node.href = node.href.replace(/\?\_\_\_ref=[0-9]+/, '?___ref=' + i); }); console.log('refreshed: ' + i); },3000); 

对于macOS Chrome:

  1. 打开开发者工具cmd + alt + i
  2. 点击开发者工具右上angular的三个点
  3. 点击设置
  4. 向下滚动到Network
  5. 启用Disable cache (while DevTools is open)请参阅屏幕截图: 在这里输入图像说明

还是一个问题。

使用像“..css?something = random-value”这样的参数在我的客户支持体验中没有任何改变。 只有名称更改才有效。

另一个文件重命名。 我在IIS中使用URL重写。 有时Helicon的Isapi重写。

添加新规则。

 + Name: lame-chrome-fix. + Pattern: styles/(\w+)_(\d+) + Rewrite URL: /{R:1}.css 

注:我保留使用undercase从名称与随机数分开。 可能是别的。

例:

 <link href="/styles/template_<% Response.Write( System.DateTime.UtcNow.ToString("ddmmyyhhmmss")); %>" type="text/css" /> 

(没有样式文件夹,它只是模式的名称部分)

输出代码如下:

 <link href="/styles/template_285316115328" rel="stylesheet" type="text/css"> 

redirect为:

(R:1 =模板)

/template.css

只有解释很长。

刚刚有这个问题,运行Chrome的一个人(在Mac上)突然停止加载CSS文件。 CMD + R根本不工作。 我不喜欢上面的build议强制生产系统永久重新加载。

有用的是改变HTML文件中的CSS文件的名称(当然重命名CSS文件)。 这迫使Chrome去获取最新的CSS文件。

如果您使用Sublime Text 3,则使用构build系统打开文件将打开最新版本,并提供通过[CTRL + B]加载的方便方法要设置构build系统,以chrome打开文件:

  1. 转到“工具”

  2. 将鼠标hover在“构build系统”上。 在列表底部,点击“New Build System …”

  3. 在新的构build系统文件中input:

     {"cmd": [ "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "$file"]} 

**提供上述第一组引用中的path是Chrome在计算机上的位置,如果它不是简单地findchrome的位置并将第一组引用中的pathreplace为path在您的计算机上的铬。

我用这个简单的技巧解决了。

 <script type="text/javascript"> var style = 'assets/css/style.css?'+Math.random();; </script> <script type="text/javascript"> document.write('<link href="'+style+'" rel="stylesheet">'); </script> 

实现你的目标最简单的方法是在你的Chrome浏览器或私人窗口在Firefox中 打开一个新的隐身窗口 ,默认情况下,不会caching。

您可以将其用于开发目的,以便您不必在项目中注入一些随机caching代码。

如果你使用IE浏览器,那么上帝可以帮助你!

Ctrl + F5

Shift + F5

两者都有效

如果您使用SiteGround作为您的托pipe公司,而其他解决scheme都无法正常工作,请尝试以下操作:

在cPanel中,进入“SITE IMPROVEMENT TOOLS”并点击“SuperCacher”。 在下一页中,单击“刷新caching”button。

在Safari 11.0 macOS上最简单的方法SIERRA 10.12.6:从原始页面重新加载页面,您可以使用帮助来find它所在菜单的位置,或者您可以使用快捷键选项(alt)+ command + R.

Chrome/firefox/safari/IE将通过这些快捷方式重新加载整个页面

Ctrl + R (或) Ctrl + F5

希望它可以帮助你!