рельсы + nginx + пассажир не находят мои драгоценные предварительно скомпилированные активы в производстве - PullRequest
2 голосов
/ 05 ноября 2019

Мое приложение отлично работает как в разработке, так и в производстве на моем локальном Mac с config.serve_static_assets = true. Однако в работе на сервере Ubuntu 18.04 я получаю следующую ошибку в NGINX:

No such file to load -- opal_ujs.rb (LoadError)

, когда я find . | grep opal_ujs, я вижу следующее

./vendor/bundle/ruby/2.5.0/gems/opal-rails-0.9.5/lib/assets/javascripts/opal_ujs.js.rb
./public/assets/opal_ujs-a633a78701574b25c28a62e6892b2a6f2cb93afcd9b71edc9bf5eea75a296481.js.gz
./public/assets/opal_ujs-a633a78701574b25c28a62e6892b2a6f2cb93afcd9b71edc9bf5eea75a296481.js

ОК, так что это там. Почему это не обслуживается. Соответствующий фрагмент production.rb выглядит следующим образом:

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

Моя настройка: Phusion Passenger + NGINX. И моя конфигурация сервера NGINX для приложения прошла ряд испытаний, но в настоящее время происходит следующее, что прокомментировала еще одна попытка:

server {
        listen 80;
        listen [::]:80;

        server_name myapp.domain;
        passenger_enabled on;
        rails_env    production;
        root         /home/deploy/myapp/current/public;

        # Allow uploads up to 100MB in size
        client_max_body_size 100m;

        #location ~ ^/(assets|packs) {
        # expires max;
        # gzip_static on;
        #}

        # Rails asset pipeline support.

        location ~ ^/assets/ {
          root         /home/deploy/myapp/current/public;
          gzip_static on; # to serve pre-gzipped version
          expires max;
          add_header Cache-Control public;

          # add_header ETag "";
          break;
        }
        # Rails asset pipeline support.
#       location ~ "^/assets/.+-([0-9a-f]{32}|[0-9a-f]{64})\..+" {
#           error_page 490 = @static_asset;
#           error_page 491 = @dynamic_request;
#           recursive_error_pages on;

#           if (-f $request_filename) {
#               return 490;
#           }
#           if (!-f $request_filename) {
#               return 491;
#           }
#       }
#       location @static_asset {
#           gzip_static on;
#           expires max;
#           add_header Cache-Control public;
#           add_header ETag "";
#       }
#       location @dynamic_request {
#           passenger_enabled on;
#       }
}

что я здесь не так делаю?

1 Ответ

0 голосов
/ 05 ноября 2019

Вы пытаетесь загрузить файл с именем

opal_ujs.rb

, и у вас есть эти файлы:

opal_ujs.js.rb

и в активах

opal_ujs-xxxxx.js

возможно, это нетот же файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...