Rails, EC2, Nginx, Unicorn - новые активы больше не отображаются в производстве - PullRequest
0 голосов
/ 19 октября 2018

Новые активы, которые я добавляю, больше не отображаются на моей производственной площадке (в EC2).Ранее он работал, и старые изображения, таблицы стилей и файлы .js работают, однако ничего нового, что я добавляю, не рендерится.

Когда я запускаю

rake assets:precompile RAILS_ENV="production" 

, я получаю следующее сообщение без ошибок:

yarn install v1.9.4
warning package-lock.json found. Your project contains lock files    generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by  unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.09s.

Но тогда в моем журнале ошибок nginx есть ряд ошибок, таких какследующее для всех моих активов, которые были недавно добавлены:

2018/10/19 16:59:13 [error] 5875#5875: *9800 open() "/home/deploy/production/
{appname}/public/assets/images/social.svg" failed (2: No such file or directory), 
client: xx.x.xxx.xxx, server: , request: "GET /assets/images/social.svg HTTP/1.1", 
host: "{appname}.com", referrer: "http://{appname}.com/"

Я не был тем, кто изначально настроил это, и мне не ясно, что является причиной проблемы, и был бы действительно признателен, если бы кто-томожет указать мне в правильном направлении.Я читаю все, что могу найти, чтобы понять это, но ничего не получаю.

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.read_encrypted_secrets = true

  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
  config.serve_static_files = false        
  config.assets.compile = true              
  config.assets.digest = true            

  config.assets.paths << "#{Rails.root}/assets/fonts"
  config.assets.paths << "#{Rails.root}/assets/images"
  config.assets.paths << "#{Rails.root}/assets/javascripts"
  config.assets.paths << "#{Rails.root}/assets/stylesheets"
  config.assets.paths << "#{Rails.root}/assets/pdf"

  #config.assets.precompile =  ['*.js', '*.css', '*.css.erb', '*.css.scss' '*.svg' '.png' '.jpg']
  #config.assets.precompile += %w( .svg .eot .woff .ttf .png )
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  config.force_ssl = false
  config.log_level = :debug
  config.log_tags = [ :request_id ]
  # config.active_job.queue_adapter     = :resque
  # config.active_job.queue_name_prefix = "byc1_#{Rails.env}"
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  # require 'syslog/logger'
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')

  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end

  config.log_level = :info
  RAILS_DEFAULT_LOGGER = Logger.new('log/production.log')  
  config.active_record.dump_schema_after_migration = false

end

/ и т. Д./nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  worker_connections 768;
}

http {
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
  ssl_prefer_server_ciphers on;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  gzip on;
  gzip_disable "msie6";

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

/ etc / nginx / sites-enabled / bcrypto

upstream bcrypto_unicorn {
    server unix:/home/deploy/production/{appname}/tmp/sockets/bcrypto_unicorn.todo.sock fail_timeout=0;
}

server {
    listen 80 default deferred;
    root /home/deploy/production/{appname}/public;

    location ^~ /assets/ {
        gzip_static on;
        expires max;
        add_header Cache-Control public;
        add_header ETag "";
    }

    try_files $uri/index.html $uri @bcrypto_unicorn;

    location @bcrypto_unicorn {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://bcrypto_unicorn;
    }

    error_page 422 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 60;
}

config / initializers /assets.rb

Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( admin.js admin.css )
Rails.application.config.assets.precompile += %w( alphabetical_paginate.js )
Rails.application.config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...