本地服务器没有反映更新的文件

22

我在使用用户本地服务器方面比较新手。我正在使用来自Node的http-server包,用它来托管使用Phaser库制作的HTML5游戏。我有一些图像资源用于游戏中,并且有时会更新这些资源。但是当我这样做时,图像的更改不会在游戏中反映出来。我尝试过重启服务器,但没有帮助。通常需要一些时间才能更新,可能约一个小时左右。有什么想法出了问题吗?

5个回答

33

浏览器可能会缓存您的代码和/或资源。

在Chrome中,打开开发工具(右键单击->检查元素),您可以右键单击刷新按钮,然后选择“清空缓存并强制重新加载”。


谢谢。为什么这只偶尔发生? - rmutalik

23

有一个选项-c,它是缓存时间(最大年龄)的秒数[3600]

(例如:10秒为-c10)。

要禁用缓存,请使用http-server -c-1

您可以输入http-server -h来获取更多信息(帮助)


1
这个解决方案是百分之百的解决方案。它强制服务器立即更新您所做的任何更改。 - wafflecat
3
这是仅限于Unix系统的命令,对吗?我在Windows上工作。我该怎么办? - klm123
1
c-1 表示 -1 秒,但对我没有起作用。而 c-01 则是 1 秒,这才解决了问题。 - Pepe Alvarez
@PepeAlvarez,对我来说c-01仍然是-1秒。我执行了http-server -c01或http-server -c1,两者都会产生1秒的结果。 - brb

15

您可以在Chrome DevTools的“网络”选项卡下禁用缓存。

每当您在打开DevTools的情况下重新加载页面时,它都会清除缓存。


或者,使用硬刷新键盘快捷方式(Mac):CMD+shift+r

在Chrome DevTools中禁用缓存的按钮


8
您可以尝试使用live-server代替。这个对我很有效。
npm install live-server -g

你可以通过命令live-server简单地开始它。


1
确保您的HTML文件位于正确的位置。有时我会编辑我的HTML和JS文件,然后在某些时候,我可能会将这些文件剪切并粘贴到一个新文件夹中。我会更改对新目录的引用。但是我会忘记需要从新目录重新打开HTML和JS文件。相反,我继续从旧目录编辑它们,并刷新浏览器,想知道为什么没有任何变化。这是因为我正在编辑的文件版本在旧目录中。我需要关闭它们,然后打开在新目录中的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接