Elastic Beanstalk Passenger -Автономные рельсы, не обслуживающие статические ресурсы

#ruby-on-rails #ruby #postgresql #passenger #amazon-elastic-beanstalk

#ruby-on-rails #ruby #postgresql #пассажир #amazon-elastic-beanstalk

Вопрос:

Когда я использую aws.push для развертывания своего приложения rails 4.1, оно не обслуживает ни один из моих статических ресурсов. Все работает, но нет css, javascript или изображений.

Когда я пытаюсь запустить:

 RAILS_ENV=production bundle exec rake assets:precompile
  

Я получаю эту ошибку:

 rake aborted!
Sass::SyntaxError: Invalid CSS after " */": expected "{", was ""
  (in /var/app/current/app/assets/stylesheets/application.css)
(sass):13506
  

Моя настройка следующая:

 64bit Amazon Linux 2014.03 v1.0.4 running Ruby 2.0 (Passenger Standalone)
Rails 4.1.1
Postgresql
  

Обновление 1:
Вот мое приложение.css. Это просто тот, который поставляется с rails по умолчанию

 /*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any styles
 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
 * file per style scope.
 *
 *= require_tree .
 *= require_self
 */
  

Я также забыл одну важную вещь. Я получаю эту ошибку в production.log No route matches [GET] "/stylesheets/application.css"

 F, [2014-07-04T20:25:02.034054 #29628] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/stylesheets/application.css"):
  actionpack (4.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.1.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.1.1) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.1.1) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.1.1) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.1.1) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.1.1) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
  rack (1.5.2) lib/rack/runtime.rb:17:in `call'
  activesupport (4.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
  rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
  railties (4.1.1) lib/rails/engine.rb:514:in `call'
  railties (4.1.1) lib/rails/application.rb:144:in `call'
  passenger (4.0.45) lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
  passenger (4.0.45) lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
  passenger (4.0.45) lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
  passenger (4.0.45) lib/phusion_passenger/request_handler.rb:448:in `block (3 levels) in start_threads'
  

Комментарии:

1. Это не имеет никакого отношения к Passenger или EB, все сводится к тому факту, что ваши CSS-ресурсы не будут компилироваться. Я думаю, что EB из памяти запустит задачу rake assets: предварительная компиляция при развертывании новой версии, если это не сработает, тогда не будет ресурсов для обслуживания. Ошибка, которую вы видите, указывает на то, что в вашем файле application.css ошибка, можете ли вы опубликовать содержимое, чтобы мы могли увидеть, что может быть не так?

2. Да, извините, я добавил CSS и продакшн. ошибка журнала.

Ответ №1:

О боже. Это была моя собственная ошибка. Пол Лидер был прав, это не имело никакого отношения к passenger. Проблема заключалась в том, что в одном из моих файлов были некоторые дополнительные символы в другом файле css: >>>>>>>>>>>>>>>>>>>External Changes , что было связано с тем, что я использовал два текстовых редактора, которые конфликтовали друг с другом.’

Что отстойно, так это то, что я бы хотел, чтобы в ошибке не было указано application.css, а вместо этого показывался фактический файл, который вызывал проблему.

АХ!!!!!!!!!