"Нам очень жаль, но что-то пошло не так."после развертывания в Heroku - PullRequest
3 голосов
/ 20 октября 2011

Я сделал небольшое приложение, в котором пользователь может входить / выходить, создаваться и так далее.Я использую MySQL в качестве базы данных, и все отлично работает в локальной среде.Но после того, как я развернул его на heroku и перенес базу данных и так далее, версия heroku не работает.Я получаю это, когда хожу по журналу:

2011-10-20T18:48:22+00:00 app[web.1]: Started GET "/" for 83.233.57.240 at 2011-10-20 11:48:22 -0700
2011-10-20T18:48:22+00:00 app[web.1]:   Processing by HomeController#index as HTML
2011-10-20T18:48:22+00:00 app[web.1]: Rendered home/index.html.erb within layouts/application (0.0ms)
2011-10-20T18:48:22+00:00 app[web.1]: Completed 500 Internal Server Error in 2ms
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: ActionView::Template::Error (defaults.js isn't precompiled):
2011-10-20T18:48:22+00:00 app[web.1]:     3:   <head>
2011-10-20T18:48:22+00:00 app[web.1]:     4:     <title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
2011-10-20T18:48:22+00:00 app[web.1]:     5:     <%= stylesheet_link_tag "application" %>
2011-10-20T18:48:22+00:00 heroku[router]: GET afternoon-lightning-2154.heroku.com/ dyno=web.1 queue=0 wait=0ms service=7ms status=500 bytes=728
2011-10-20T18:48:22+00:00 app[web.1]:     6:     <%= javascript_include_tag :defaults %>
2011-10-20T18:48:22+00:00 app[web.1]:     7:     <%= csrf_meta_tag %>
2011-10-20T18:48:22+00:00 app[web.1]:     8:     <%= yield(:head) %>
2011-10-20T18:48:22+00:00 app[web.1]:     9:   </head>
2011-10-20T18:48:22+00:00 app[web.1]:   app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___2280146998680186378_39052620'
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: 
2011-10-20T18:48:22+00:00 app[web.1]: cache: [GET /] miss

Я вижу, что в какой-то момент он завершает ошибку 500, но я не знаю почему.Есть предложения по этому поводу?Заранее спасибо!

1 Ответ

14 голосов
/ 20 октября 2011

Убедитесь, что у вас это есть в config / environment / production

# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

По сути, ваша проблема в том, что ваши ресурсы не компилируются автоматически.

Подробнее здесь: http://devcenter.heroku.com/articles/rails31_heroku_cedar

Редактировать:

Начиная с Rails 3.1 мы будем использовать конвейер Assets.Это означает, что вам нужно поместить все ваши активы (изображения, javascript, css) в app/assets.До версии 3.1 было бы поместить их в public/**/*.

В режиме разработки Rails 3.1 собирается автоматически скомпилировать (минимизировать JS и CSS, преобразовать изображения в base64 в некоторых случаях и т. Д.) Все ваши ресурсы, создав небольшой пакет с версиями.

Для практического примера запустите bundle exec rake assets:precompile в вашем проекте.Посмотрите на новую папку в public/.Вы можете безопасно удалить его после.

В производственном режиме это не происходит автоматически.Вы можете включить автоматическую компиляцию ресурсов или вручную запустить bundle exec rake assets:precompile перед развертыванием.

Подробнее о трубопроводе активов http://guides.rubyonrails.org/asset_pipeline.html

Полезно: https://github.com/dnagir/guard-rails-assets

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