【问题标题】:Views won't update in production视图不会在生产中更新
【发布时间】:2014-10-06 22:41:00
【问题描述】:

在终于对我的开发机器上的结果感到满意后,我决定使用 capistrano 在我的 VPS 上部署我的 Rails 4 应用程序。作为我的堆栈,我选择了 NGINX 和 Unicorn。现在我注意到我需要更改一些东西以使一切都在生产中正常工作,但不知何故我无法更新视图。

我已经做的是:

  1. 清除浏览器缓存
  2. 通过将 config.action_controller.perform_caching 设置为 false 来禁用 config/production.rb 中的缓存
  3. 使用 ssh 手动检查远程服务器上的文件
  4. 重新启动我的服务器堆栈

事实上,我的本地文件与生产服务器上的文件是同步的,但是我在浏览器中看不到任何变化。我还可以做些什么?有什么我想念的吗?我很感激 任何帮助。

【问题讨论】:

  • 请问如何重新启动堆栈?你确定独角兽已经重启了吗?
  • 我正在运行一个实际执行以下命令的脚本:bundle exec unicorn -c config/unicorn.rb -E production。我只是手动测试了它,它似乎工作正常。然后我使用以下命令启动 NGINX:sudo service nginx restart。

标签: ruby-on-rails ruby-on-rails-4 nginx unicorn


【解决方案1】:

1.验证您是否没有剩余的缓存 tmp 文件

What i already did is:
    Disabling the cache in config/production.rb by setting config.action_controller.perform_caching to false

我假设这意味着之前启用了缓存,因此一些缓存文件可能更早创建并且现在由 NGINX 提供而不通过 Rails,并且您没有提到您手动清除缓存

您可以查看您的“公共”文件夹以查看是否有缓存文件并手动删除它们,但请务必知道您在做什么,并且不要删除可能被应用程序的其他部分使用的文件。或者您可以尝试通过控制台清除生产服务器中的缓存

# from the root directory of your application, open your rails console
$ RAILS_ENV=production rails c
# Then in the console, type
> Rails.cache.clear

2。验证是否没有代理缓存

您的页面可能被外部组件(例如代理)缓存。您应该从其本地控制台检查服务器的输出。登录到您的服务器控制台并运行 curl 以从 localhost 获取页面的输出(不要使用服务器外部 IP),然后查看源以查看输出是否已更新。这将缩小问题的根源,以便进一步调查

【讨论】:

  • 感谢您的回复。这有点奇怪,但我在公共文件夹中看不到任何缓存文件,当我运行您建议的命令时,我收到一条错误消息,告诉我 tmp 中没有缓存文件夹。
  • 编辑我的答案给你另一个想法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 2019-07-04
  • 1970-01-01
  • 2013-05-26
  • 2013-10-08
  • 2021-07-05
  • 1970-01-01
相关资源
最近更新 更多