Как доставлять шрифты из нестандартного каталога с помощью Asset Pipeline
Я пытаюсь включить Fontawesome в приложение Rails 4, однако ресурсы не попадают в конвейер ресурсов. Однако, шрифты не делают это в производстве, и я не могу понять, почему.
Организация файловой структурыВсе мои активы хранятся в/assets/components
так что Fontawesome появляется в:/assets/components/font-awesome
(они находятся в другом каталоге, потому что я использую Bower).
# application.css.scss
/* ...
*= require bootstrap/dist/css/bootstrap
*= require font-awesome/css/font-awesome
*= require_self
*= require_tree .
*/
Конвейер активов настроен на прекомпиляцию шрифтов# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
config.assets.paths << Rails.root.join('vendor', 'assets', 'components')
# Adding Webfonts to the Asset Pipeline
config.assets.precompile << Proc.new { |path|
if path =~ /\.(eot|svg|ttf|woff|otf)\z/
true
end
}
Я добавил инструкции по прекомпиляции, чтобы все шрифты были предварительно скомпилированысогласно этому вопросу
Heroku 12 Factor Gem включен#gemfile
group :production do
gem "rails_12factor"
end
Так в чем проблема?Когда я нажимаю на Heroku, он показывает, что приложение запрашивает файлы, но они не загружаются:
И, глядя на журналы, кажется, проблема маршрутизации - я ожидал, что шрифт будет доставлен/assets/fonts
но, видимо, смотрит в/fonts
app[web.1]: Started GET "/fonts/fontawesome-webfont.ttf?v=4.0.1" for 86.161.231.181 at 2013-10-29 15:53:01 +0000
app[web.1]: Started GET "/fonts/fontawesome-webfont.ttf?v=4.0.1" for 86.161.231.181 at 2013-10-29 15:53:01 +0000
app[web.1]:
app[web.1]: ActionController::RoutingError (No route matches [GET] "/fonts/fontawesome-webfont.ttf"):
Почему активы не обслуживаютсяЯ немного запутался со всем этим. Почему эти шрифты не обслуживаются?