【问题标题】:Vagrant synced file not updatingVagrant 同步文件未更新
【发布时间】:2015-10-07 08:51:09
【问题描述】:

我已经设置了一个带有 Ubuntu 12.04 和 Apache2 的 Vagrant 盒子(根据 Vagrant 的教程,所有这些都非常普通)。我一直在为 Web 开发测试它,但偶然发现了一个奇怪的问题(不确定是错误还是功能):

  • 我已经在我的机器和 VM 文件夹中设置了一个同步文件夹。除了(到目前为止)我正在使用的 JSON 文件之外,Apache 一直在为这些文件提供大部分服务。
  • 如果我在本地编辑它,它似乎会将其同步到 VM 文件夹。两个副本都是一样的。
  • 不过,如果我在修改后从浏览器中对其进行 XHR 处理,我仍然会得到该文件之前提供的版本。

起初,我以为浏览器有缓存,但在尝试了 2 种不同的浏览器(Chrome(ium) 和 Firefox)后,在清除了各自的缓存后,问题仍然存在。

我终于设法通过重新加载 (vagrant reload) 虚拟机来绕过它。

我想知道这是一个错误还是一个功能,我该如何解决它。 Apache 是否可配置为不为特定文件夹/文件/文件类型缓存服务器端?

【问题讨论】:

  • 文件夹是否使用rsync同步?
  • @FrédéricHenri IDK...我该如何检查?
  • 在您的 vagrant 文件中,您将有 type: "rsync":rsync => true 用于此同步文件夹
  • Vagrantfile 中没有这样的行。我一直在阅读有关rsync 的 Vagrant 文档,现在它看起来绝对是一个功能。但是不应该在服务器的缓存中自动删除/更新已更改的文件吗?
  • 好的,我想我完全误解了你的问题!对于 Apache 缓存,如果您启用了 mod_cache,则可以检查 conf 中的 doc

标签: apache caching vagrant


【解决方案1】:

vagrant 使用以前的设置,直到您再次配置该新设置,因此在 vagrant 每次更改后,请执行配置以查看反映的输出。没有apache2缓存问题。

为此使用命令

vagrant reload vmname --provision

如果您的vm namedefault,则使用

vagrant reload default --provision

它将重新启动 vagrant vm 并将更改应用到 vm 。配置后您将能够看到更改。

【讨论】:

    【解决方案2】:

    终于明白了。这与 Apache 和/或 Nginx 都发生的问题有关:服务器配置中的 sendfile 选项。

    基本上一个新文件不会在客户端发送/更新,即使它通过 Vagrant 同步机制在服务器端进行了更改。

    查看此答案以获得解决方案:here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      相关资源
      最近更新 更多