Como entregar fontes de um diretório não padrão usando o pipeline de ativos
Eu estou tentando incluir o Fontawesome com um aplicativo Rails 4, no entanto, os ativos não estão entrando no pipeline de ativos. No entanto, as fontes não estão conseguindo em produção e não consigo entender por quê.
Organização da estrutura de arquivosTodos os meus ativos são armazenados em/assets/components
para que Fontawesome apareça em:/assets/components/font-awesome
(eles estão em um diretório diferente porque estou usando o Bower).
# application.css.scss
/* ...
*= require bootstrap/dist/css/bootstrap
*= require font-awesome/css/font-awesome
*= require_self
*= require_tree .
*/
O pipeline de ativos está definido para pré-compilar fontes# 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
}
Adicionei as instruções de pré-compilação para que as fontes fossem pré-compiladasde acordo com esta pergunta
A jóia do fator 12 de Heroku é incluída#gemfile
group :production do
gem "rails_12factor"
end
Então qual é o problema?Quando eu envio para o Heroku, ele mostra que o aplicativo está solicitando os arquivos, mas eles não estão carregando:
E olhando para os logs parece ser um problema de roteamento - eu teria esperado a fonte ser servida a partir de/assets/fonts
mas aparentemente está procurando/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"):
Por que os recursos não são veiculados?Estou um pouco confuso com tudo isso. Por que essas fontes não estão sendo atendidas?