Мое приложение отлично работает как в разработке, так и в производстве на моем локальном 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;
# }
}
что я здесь не так делаю?