2012-01-29 21 views
13

Como debería ver en las imágenes a continuación, el css en mi sitio host local está espaciado mucho mejor en la parte superior que en heroku.CSS se ve diferente en heroku

Alguien ha tenido este tipo de problema antes. Se puede ver mejor en esta página http://pltcpal.herokuapp.com/forums/

estoy usando Twitter de arranque, que recomienda la adición de

`padding-top: 40px;` 

al cuerpo si el uso de la barra de navegación superior. De alguna manera no funciona ...

heroku

local host

+0

¿Existe un duplicado? http://stackoverflow.com/questions/tagged/css+heroku?sort=votes&pagesize=50 –

+0

@IOXenus Es una pregunta totalmente diferente – Leahcim

+1

quizás debido al hecho de que no está utilizando CSS Reset. Si agrega 50px relleno instaed de 40px, lo hace bien. – Jawad

Respuesta

18

El problema está relacionado con el manejo de la canalización de activos en Heroku. Hay varias formas de manejar esto, consulte http://devcenter.heroku.com/articles/rails31_heroku_cedar

Solucioné el problema en mi aplicación compilando previamente los activos localmente en mi máquina y luego llevándolos a Heroku.

pre-compilar los activos:

RAILS_ENV=production bundle exec rake assets:precompile 

Agregar/actualizar los cambios en git repositorio:

git add public/assets 
git commit -m "vendor compiled assets" 

Para estar seguro Probé todo el asunto en una rama local en mi primera máquina de la cual Empujé a Heroku usando el siguiente comando (Heroku normalmente ignora todas las ramas excepto la rama principal, por lo tanto, el truco):

git push -f heroku heroku-assetpipeline:master 
+0

Hizo mi día. Gracias. –

1

que tienen el mismo problema. Cuando comparo el código de desarrollo y producción, ocurre que en la máquina de desarrollo las hojas de estilo y los archivos javascript de bootstrap se cargan, por lo que en el sitio de producción (Heroku) solo hay una aplicación: XYZ.css y una aplicación XYZ .js.

No estoy seguro de si esto podría ser un problema con la cartera de activos.

Probablemente alguien deba explicar lo que se debe hacer para (pre) compilar el inventario de activos de modo que la implementación en Heroku tenga éxito.

10

FWIW, tuve este mismo problema y verifiqué todo lo que pude pensar, además de los anteriores. Resultó que debía haber disminuido mi navegador mientras estaba en el localhost, y tenía el zoom estándar en mi url de producción.

Fue tan simple como restablecer el zoom en mi navegador en ambas páginas. Espero que esto ayude a alguien más con el mismo problema.

+0

Hahahahaha. ¡Mismo! :) –

0

¿Es posible que haya precompilado sus activos localmente en algún momento? Para obligar a Heroku a compilar sus activos durante la compilación de slug, puede cambiar el nombre de su public/assets/manifest.yml a public/assets/manifest.yml.bak, confirmar su fuente y enviar a heroku.

Heroku supone que compiló sus activos localmente cuando ve el archivo manifest.yml.

0

Tuve el mismo problema y seguí las instrucciones de un par de páginas diferentes, incluida la documentación de Heroku.Publicaré aquí para ayudar al siguiente tipo, posiblemente debido a cambios en Rails 4, Heroku o Github, pero las instrucciones anteriores no funcionaron en absoluto para mí. Sin embargo, lo hice funcionar y así es cómo.

Sí, probablemente debería precompilar sus activos usando RAILS_ENV=production bundle exec rake assets:precompile pero luego vaya a su carpeta 'public/assets' y copie 'all' '.css', 'css.gz', '.json', '.yml' , los archivos '.js' que comienzan con 'application' o 'manifest'. Moverlos a una carpeta fuera de los directorios de la aplicación. Haz esto solo encierra cualquier cosa va mal. Verifique que todos esos archivos se eliminen de la carpeta 'public/assets /' de las aplicaciones. A continuación, reinicie su servidor local de rieles y verifique que su aplicación todavía se comporte como usted desea. Luego vaya a su cuenta de Github y vaya al directorio 'public/assets /' de su repositorio y elimine todos los mismos archivos que acaba de hacer localmente. Luego agrega/confirma localmente, luego presiona git, luego a heroku, y walla ya terminaste, debería estar funcionando.

La razón detrás de esto, lo que supongo, es porque cuando presionas a Heroku comprueba los recursos compilados en tu repositorio y debido a esto, aunque he precompilado localmente, todavía estaba extrayendo algunas configuraciones de activos de confirmaciones anteriores . Al eliminar estos archivos, Heroku debe compilarlos durante el proceso. Una cosa que no probé y que puede funcionar es simplemente cambiar a otra sucursal y eliminar esos archivos y desplegar esa rama en Heroku, por lo que es posible que desee probar eso primero, pero esto es lo que funcionó para mí.

Otra nota, el cambio de nombre de los archivos a .bak o .old Heroku todavía los consideraba como sus clientes habituales y los mostraba como si fueran los originales que no se mostraban correctamente.

Cuestiones relacionadas