nginx Rails生产服务器不显示视图更改

flseospp  于 2023-08-03  发布在  Nginx
关注(0)|答案(2)|浏览(109)

我在一个ec2示例上托管了一个Rails 4应用程序,并使用Nginx,我向控制器添加了一个视图,并在尝试通过浏览器导航到页面时遇到错误,直到我重新加载nginx. conf。一旦它出现了,我做了一些改变,但这些都没有显示,直到我重新加载nginx。
显然,我不想每次需要更改视图时都重新加载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;
}

字符串
我的环境/生产.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

hgqdbh6s

hgqdbh6s1#

您的nginx配置似乎正在使用乘客。默认情况下,在生产模式下,所有文件内容只解析一次,并缓存在内存中-因此更改不会立即引起注意。要强制刷新,您至少需要重新启动乘客。这可以通过简单地触摸应用程序根目录中的tmp/restart.txt文件来完成。

8xiog9wr

8xiog9wr2#

在environments/production.rb文件中,可以更改以下行
config.cache_classes = false
这个配置决定了ruby类不会被缓存。因此,您对代码的更改将反映在刷新浏览器上。由于类没有被缓存,性能会有所下降。因此,在您的开发之后,下面的内容可能会设置为true。

相关问题