Ошибка Ruby on Rails в производстве

Я просто поместил приложение Rails в онлайн-режиме. И у меня есть две проблемы:

  1. Я получаю 500 на своем веб-сайте, для которого production.log говорит:

    Completed 500 Internal Server Error in 10.0ms ActionView::Template::Error (./icons/icon_nameplate.png isn't precompiled):

    Для этого я попытался выполнить следующую команду:

    bundle exec rake assets:precompile

    Это не сработало. Я хочу сказать, что когда я запускаю сервер локально на своем компьютере с сервером rails, все работает отлично.

    Выходные данные об bundle exec rake assets:clean assets:precompile --trace:

    ** Invoke assets:clean (first_time) ** Execute assets:clean/usr/bin/ruby1.9.1/usr/local/bin/rake assets:clean:all RAILS_ENV=production RAILS_GROUPS=assets --trace ** Invoke assets:clean:all (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:clean:all rm -rf/home/celliptic/public/assets ** Invoke assets:precompile (first_time) ** Execute assets:precompile/usr/bin/ruby1.9.1/usr/local/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace ** Invoke assets:precompile:all (first_time) ** Execute assets:precompile:all ** Invoke assets:precompile:primary (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:precompile:primary ** Invoke assets:precompile:nondigest (first_time) ** Invoke assets:environment (first_time) ** Execute assets:environment ** Invoke environment (first_time) ** Execute environment ** Invoke tmp:cache:clear (first_time) ** Execute tmp:cache:clear ** Execute assets:precompile:nondigest

  2. Вторая проблема может заключаться в том, почему первая не была исправлена после предварительной компиляции. Это просто, что любая модификация на сервере прямо не отражается на веб-сайте. Это нормально? Это из-за какого-то прокси-кэширования моего веб-сайта?

Спасибо за ответ!

4 ответа

У вас есть ошибка: ActionView::Template::Error (./icons/icon_nameplate.png isn't precompiled), мне кажется, что вы пытаетесь загрузить статический актив, когда он там отсутствует.

Я бы посмотрел ваши взгляды или CSS на то, на что вы ссылались. icon_nameplate.png - Я полагаю, что проблема будет заключаться в том, что вы пытаетесь напрямую ссылаться на файл, и поскольку он не был скомпилирован, он недоступен. Доказательством этого было бы то, что он ссылался на статическую (не отпечатанную) ссылку

После того, как вы следовали указаниям по tungsten_carbide каркасу, сообщите нам, что произойдет


Попробуйте запустить:

bundle exec rake assets:clean assets:precompile --trace

затем введите его, если вы используете пассажира:

touch tmp/restart.txt

затем снова проверьте.


Привет, какой веб-сервер вы используете? и под которым Linux?

попробуйте выполнить следующие шаги:

  1. посмотрите, есть ли у вас разрешения на запись скомпилированных активов.

  2. вы уверены, что включили его в application.css?

  3. вставьте свой полный файл css, возможно, вы используете такие методы, как resource-url, которые могут вызывать ошибку, о которой вы говорите.


Спасибо всем за вашу помощь. Сейчас это работает хорошо, но я не знаю, какая команда сделала сделку. Я сделал:

  1. bundle exec rake assets:clean assets:precompile --trace
  2. touch tmp/restart.txt
  3. Изменено config.assets.compile = true в production.rb
  4. В этот момент это не сработало, поэтому я заснул. Проснулся, загрузил мой сайт, и он работал

Так что, возможно, понадобилось время, чтобы активировать изменения или я не знаю.

Еще спасибо за вашу помощь.

licensed under cc by-sa 3.0 with attribution.