2012-01-29 12 views
13

Come si dovrebbe vedere nelle immagini qui sotto, il css sul mio sito di hosting locale è distanziato molto meglio in alto che su heroku.Il CSS sta cercando in modo diverso su heroku

Qualcuno ha avuto questo tipo di problema prima. Lo si può vedere meglio in questa pagina http://pltcpal.herokuapp.com/forums/

sto usando Twitter bootstrap, che raccomanda l'aggiunta

`padding-top: 40px;` 

al corpo se si utilizza la barra di navigazione superiore. In qualche modo non funziona ...

heroku

local host

+0

Possibile duplicato? http://stackoverflow.com/questions/tagged/css+heroku?sort=votes&pagesize=50 –

+0

@IOXenus È una domanda completamente diversa – Leahcim

+1

forse a causa del fatto che non si sta utilizzando il reset CSS. Se aggiungi 50px padding instaed di 40px, si blocca bene. – Jawad

risposta

18

Il problema è legato alla gestione della pipeline di asset su Heroku. Ci sono diversi modi su come questo può essere gestito, vedi http://devcenter.heroku.com/articles/rails31_heroku_cedar

Ho risolto il problema nella mia domanda pre-compilando le risorse localmente sulla mia macchina e poi spingendole su Heroku.

pre-compilare i beni:

RAILS_ENV=production bundle exec rake assets:precompile 

Add/applicare le modifiche al repository git:

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

Per essere sicuri Ho testato il tutto su un ramo locale sulla mia macchina prima che Ho spinto a Heroku usando il seguente comando (Heroku normalmente ignora tutti i rami eccetto il ramo principale, quindi il trucco):

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

Ha reso la mia giornata. Grazie. –

1

Ho la stessa edizione. Quando paragono il codice di sviluppo e produzione, si verifica che sul foglio di sviluppo vengano caricati tutti i fogli di stile e i file javascript di bootstrap sul sito di produzione (Heroku), esiste solo una applicazione: XYZ.css e una applicazione-XYZ .js.

Non sono sicuro se questo potrebbe essere un problema con la pipeline di asset.

Probabilmente qualcuno potrebbe elaborare ciò che deve essere fatto per (pre) compilare la pipeline degli asset in modo tale che l'implementazione su Heroku abbia esito positivo.

10

FWIW, ho avuto questo stesso problema e ho controllato tutto quello che potevo pensare, così come quelli sopra. È emerso che dovevo essere ingrandito nel mio browser mentre ero su localhost, e avevo lo zoom standard sul mio URL di produzione.

È stato semplice come reimpostare lo zoom nel mio browser su entrambe le pagine. Spero che questo aiuti qualcun altro con lo stesso problema.

+0

Hahahahaha. Stesso! :) –

0

È possibile che le risorse pre-compilate a livello locale in qualche punto? Per forzare heroku a compilare le tue risorse durante la compilazione di slug, puoi rinominare il tuo pubblico/assets/manifest.yml in public/assets/manifest.yml.bak, commettere la tua fonte e passare a heroku.

Heroku presuppone di aver compilato le risorse in locale quando vede il file manifest.yml.

0

Ho avuto lo stesso problema e ho seguito le istruzioni di un paio di pagine diverse inclusa la documentazione di Heroku.Sto postando qui per aiutare il prossimo ragazzo perché probabilmente a causa di cambiamenti in Rails 4, Heroku o Github ma le istruzioni di cui sopra non hanno funzionato affatto per me. Comunque l'ho fatto funzionare e ecco come.

Sì, probabilmente dovresti precompilare le tue risorse usando RAILS_ENV=production bundle exec rake assets:precompile ma dopo di ciò entra nella tua cartella "public/assets" e copia "all" ".css", "css.gz", ".json", ".yml" , file '.js' che iniziano con 'applicazione' o 'manifest'. Spostali in una cartella al di fuori delle directory dell'applicazione. Fate in modo che tutto vada storto. Verifica che tutti questi file vengano eliminati dalla cartella "public/assets /" delle app. Quindi riavvia il server delle guide locali e verifica che la tua app si comporti ancora come tu intendi. Quindi vai al tuo account Github e vai nella directory 'public/assets /' del tuo repository ed elimina tutti gli stessi file che hai appena fatto localmente. Quindi aggiungi/commit localmente, quindi premi su git, poi su heroku e walla hai finito dovrebbe funzionare.

La logica alla base di ciò, presumo, è perché quando si spinge su Heroku controlla gli asset compilati nel proprio repository e per questo, anche se avevo precompilato localmente, stava ancora estraendo alcune configurazioni di asset dai commit precedenti . Rimuovendo questi file, Heroku deve compilarli durante il push. Una cosa che non ho provato e che potrebbe funzionare è passare a un altro ramo e cancellare quei file e distribuire quel ramo su Heroku, quindi dovresti provarlo prima, ma questo è ciò che ha funzionato per me.

Un'altra nota, rinominare i file in .bak o .old Heroku li considerava come i loro clienti abituali e li visualizzava come se fossero quelli originali che non venivano visualizzati correttamente.

Problemi correlati