#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, а вместо этого показывался фактический файл, который вызывал проблему.
АХ!!!!!!!!!