2011-01-05 16 views
5

Tengo unas fuentes con licencia que he incrustado en mi aplicación Rails utilizando la etiqueta CSS @font-face. Estas fuentes se encuentran en la ruta "../Public/Fonts/" en mi aplicación Rails 3 y se reproducen perfectamente en cualquier máquina local que despliegue el repositorio y lo ejecute.Heroku y @ font-face: las fuentes incrustadas no se mostrarán en Heroku

Sin embargo, cuando presiono mi aplicación para Heroku parece que no puede encontrar las fuentes. Puede ver que está buscando en el directorio de fuentes, pero nunca puede acceder a ellos. No parece importar dónde coloco las fuentes o cómo escribo la ruta de la fuente en la declaración @ font-face.

Mis fuentes se encuentran en #{RAILS.root}/public/fonts/ChunkFive

Aquí está mi @ declaración font-face:

@font-face { 
font-family: "ChunkFive"; 
src: url("../fonts/ChunkFive/ChunkFive-webfont.eot"); 
src: local("?"), 
url("../fonts/ChunkFive/ChunkFive-webfont.woff") format("woff"), 
url("../fonts/ChunkFive/ChunkFive-webfont.ttf") format("truetype"), 
url("../fonts/ChunkFive/ChunkFive-webfont.svg") format("svg"); 
} 

Aquí es el 404 de recursos de mensajes que no se encuentra consigo para cada fuente:

Request URL:http://thedanbarrett.heroku.com/fonts/ChunkFive/ChunkFive-webfont.woff 
Request Method:GET 
Status Code:404 Not Found 
Request Headers 
Referer:http://thedanbarrett.heroku.com/home 
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 
(KHTML,like Gecko) Chrome/8.0.552.224 Safari/534.10 
Response Headers 
Age:0 
Connection:keep-alive 
Content-Length:727 
Content-Type:text/html 
Date:Wed, 05 Jan 2011 15:25:21 GMT 
Server:nginx/0.7.67 
Via:1.1 varnish 
X-Runtime:0.001344 
X-Varnish:764492621 

Lo extraño es que encuentra y carga hojas de estilo, iconos e imágenes en la misma carpeta raíz. Solo para reiterar, las fuentes se incrustan y funcionan perfectamente desde un servidor local, incluso en hosts que no tienen la fuente instalada.

he encontrado una referencia en línea con alguien que estaba teniendo un problema similar que cambió su config.ru y environment.rb archivos para que sea amigable con Heroku, pero me parece que no puede encontrarlo.

Gracias de antemano SO minions para toda su ayuda!

~ Dan

+0

¿Revisó los registros de heroku para ver si la solicitud del archivo estaba llegando al servidor de su aplicación? – hornairs

+0

Intenta agregar 'use Rails :: Rack :: Static' a' config.ru' – Zabba

+0

¿Añadiría esa línea al archivo 'config.ru' o reemplazaría el contenido actual? – thoughtpunch

Respuesta

4

Así que resultó que la raíz de los recursos se estableció en Public/Stylesheets por lo que mi declaración de ruta en la sección de la fuente de la cara no tenía sentido. Saqué lo más fácil y moví las fuentes en el directorio de las hojas de estilo y todo funciona perfectamente ahora.

directorio
+0

Gracias por responder. Debe marcar su propia respuesta como la respuesta correcta aquí. –

0

Fuentes: app/assets/fonts/

Agregue la línea siguiente para production.rb

config.serve_static_assets = true 

En su styles.css.scss

@font-face { 
    font-family: "mycustomfont"; 
    src:url(asset_path("mycustomfont.eot")); 
    src:url(asset_path("mycustomfont.eot?#iefix")) format("embedded-opentype"), 
    url(asset_path("mycustomfont.ttf")) format("truetype"), 
    url(asset_path("mycustomfont.svg#mycustomfont")) format("svg"), 
    url(asset_path("mycustomfont.woff")) format("woff"); 
    font-weight: normal; 
    font-style: normal; 
} 

Medio Ambiente: Rails 4.0.1Ruby 2.0.0-p247

Se debe trabajar sobre su oku :)