активы рельсы 3.1 не загружаются после прекомпиляции nginx + единорог - PullRequest
3 голосов
/ 22 марта 2012

Я пытаюсь прекомпилировать активы в производственной среде. Но после прекомпиляции приложение не находит файлы изображений, файлы javascripts, файлы css ... и т. Д.

Я запускаю эту команду:

RAILS_ENV=production rake assets:precompile

и я получаю такой результат:

/home/hyperrjas/.rvm/rubies/ruby-1.9.2-p318/bin/ruby /home/hyperrjas/.rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
/home/hyperrjas/.rvm/rubies/ruby-1.9.2-p318/bin/ruby /home/hyperrjas/.rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets

тогда я пытаюсь перезагрузить страницу и вижу это:

enter image description here

Я использую nginx + единорог.

Почему приложение не находит ресурсы, изображения, CSS, JavaScript ...

Отредактировано **

Я загружаю свой макет активов из application.html.erb с помощью:

<%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>

У меня есть в nginx.conf это на сервере {}

location ~ ^/(assets)/  {
                          root ~/mydomain.com/current/public;
                          gzip_static on; # to serve pre-gzipped version
                          expires max;
                          add_header  Cache-Control public;
                         }

Спасибо

Ответы [ 2 ]

4 голосов
/ 22 марта 2012

Проблема была исправлена: D:

Ошибка была в nginx.conf в:

location ~ ^/(assets)/  {
                         root ~/mydomain.com/current/public;
                         gzip_static on; # to serve pre-gzipped version
                         expires max;
                         add_header  Cache-Control public;
                        }

Путь к корневому каталогу к ресурсам плох,правильная форма:

 location ~ ^/(assets)/  {
                            root /home/hyperrjas/mydomain.com/current/public;
                            gzip_static on; # to serve pre-gzipped version
                            expires max;
                            add_header  Cache-Control public;
                           }

Спасибо!

0 голосов
/ 22 марта 2012

Во-первых,

Можете ли вы проверить - файлы манифеста и директивы app/assets/javascripts/application.js должно быть

// ...
//= require jquery
//= require jquery_ujs
//= require_tree

app/assets/stylesheets/application.css

/* ...
*= require_self
*= require_tree .
*/

Проверьте, ниже настройки в config / environment / production.rb в вашем приложении Это должно быть правдой

config.assets.compile = true

и если вы хотите получить дайджесты для URL-адресов ресурсов, сделайте ниже значение true, если оно равно false.

config.assets.digest = true

Несколько ссылочных ссылок

http://mrjaba.posterous.com/rails-31-asset-pipeline-with-nginx-and-passen

http://guides.rubyonrails.org/asset_pipeline.html

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