Ruby on rails Rails生产服务器未显示对视图的更改

Ruby on rails Rails生产服务器未显示对视图的更改,ruby-on-rails,ruby-on-rails-4,nginx,production-environment,Ruby On Rails,Ruby On Rails 4,Nginx,Production Environment,我在ec2实例上托管了一个Rails 4应用程序,使用Nginx,我向控制器添加了一个视图,在重新加载Nginx.conf之前,试图通过浏览器导航到该页面时出错。当它出现时,我对视图做了一些更改,但是在我再次重新加载nginx.conf之前,这些更改也没有显示出来 显然,我不想每次需要更改视图时都重新加载nginx.conf。我有没有遗漏什么让我自己更轻松 这是我的nginx.conf文件 server { listen 80; server_name app-on

我在ec2实例上托管了一个Rails 4应用程序,使用Nginx,我向控制器添加了一个视图,在重新加载Nginx.conf之前,试图通过浏览器导航到该页面时出错。当它出现时,我对视图做了一些更改,但是在我再次重新加载nginx.conf之前,这些更改也没有显示出来

显然,我不想每次需要更改视图时都重新加载nginx.conf。我有没有遗漏什么让我自己更轻松

这是我的nginx.conf文件

server {
    listen       80;
    server_name  app-on-rails;
    passenger_enabled on;
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    root   /home/usr/www/app-on-rails/welcome;
    index index.html.erb;
}
我的环境/production.rb文件

Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = false
  config.assets.js_compressor = :uglifier
  config.assets.compile = true

您的nginx配置似乎正在使用passenger。默认情况下,在生产模式下,所有文件内容都会被解析一次,并缓存在内存中,因此更改不会立即被注意到。要强制刷新,您至少需要重新启动。只需触摸应用程序根目录中的tmp/restart.txt文件即可完成此操作。

是否“默认”意味着有办法临时禁用或更改此行为?@WhyAyala是的,您可以设置
config.action\u view.cache\u template\u load=false
。但是,由于对性能的影响,我强烈建议不要使用这种方法。如果更改或添加文件,只需触摸重新启动文件。当乘客重新启动时,不会删除对服务器的请求。我正在尝试设置redmine,它构建在本地vagrant的rails之上,用于定制。该应用程序在开发模式下运行,但仍然没有选择任何模型或控制器更改。每次我都必须重新启动nginx才能看到更改。有什么想法吗?