Cómo entregar fuentes desde un directorio no estándar usando Asset Pipeline
Estoy tratando de incluir Fontawesome con una aplicación Rails 4, sin embargo, los activos no están llegando a la lista de activos. Sin embargo, las fuentes no están saliendo en producción y no puedo entender por qué.
Organización de la estructura de archivosTodos mis activos se almacenan en/assets/components
para que Fontawesome aparezca en:/assets/components/font-awesome
(Están en un directorio diferente porque estoy usando Bower).
# application.css.scss
/* ...
*= require bootstrap/dist/css/bootstrap
*= require font-awesome/css/font-awesome
*= require_self
*= require_tree .
*/
La canalización de activos está configurada para precompilar fuentes# 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
}
Agregué las instrucciones de precompilación para que todas las fuentes fueran precompiladassegún esta pregunta
Heroku 12 Factor gem está incluido#gemfile
group :production do
gem "rails_12factor"
end
¿Entonces, cuál es el problema?Cuando empujo a Heroku, muestra que la aplicación está solicitando los archivos pero que no están cargando:
Y al mirar los registros parece ser un problema de enrutamiento, habría esperado que la fuente fuera servida desde/assets/fonts
pero aparentemente está buscando en/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 qué no se sirven los activos?Estoy un poco confundido con todo esto. ¿Por qué no se sirven estas fuentes?