У меня проблемы со статическими ресурсами (изображениями, js и таблицами стилей), которые не обслуживаются в Heroku.
Прекрасно работает в моей локальной среде разработчиков.
Ошибки выглядят так:
2011-08-08T02:58:45+00:00 app[web.1]: Started GET "/stylesheets/reset.css" for 98.234.235.21 at 2011-08-07 19:58:45 -0700
2011-08-08T02:58:45+00:00 app[web.1]:
2011-08-08T02:58:45+00:00 app[web.1]: ActionController::RoutingError (No route matches "/stylesheets/reset.css"):
Я использую:
- Рубин 1.9.2
- Рельсы 3.0.7
- Heroku с бамбуком-Mri-1.9.2 и тонким веб-сервером. (Я следовал стандартным инструкциям по настройке на heroku.com)
Я искал в google / stackoverflow и попробовал следующее безуспешно:
- удалить config.ru
- добавить
use ActionDispatch::Static, "#{Rails.root}/public"
на config.ru
- set
config.serve_static_assets = true
in staging.rb
Может кто-нибудь предложить исправление? Должен ли я использовать кедр вместо бамбука? Должен ли я использовать что-то еще вместо тонкого?
Спасибо!
EDIT:
Файлы js обслуживаются, а изображения и таблицы стилей - нет.
Я проверил, что пути в моих ссылках совпадают.
myapp.heroku.com/stylesheets/reset.css
- не удается
myapp.heroku.com/javascripts/jquery.js
- успешно
Я также попытался установить следующее: config.action_dispatch.x_sendfile_header = nil
.
Это согласуется с config.serve_static_assets = true
, но мы заметили, что Heroku использует эти параметры независимо от того, как вы их установили. во время запуска он делает следующее:
-----> Detected Rails is not set to serve static_assets
Installing rails3_serve_static_assets... done
-----> Configure Rails 3 to disable x-sendfile
Installing rails3_disable_x_sendfile... done