2013-04-18 23 views
11

Sul mio computer locale, quando visualizzo la mia app Rails, i miei fogli di stile sono collegati correttamente a /assets/stylesheets/ ma su Heroku, è cambiato in /stylesheets/ presumibilmente nella directory public e non funziona! Come faccio a trasferire i miei fogli di stile su public/stylesheets durante la compilazione?Rails fogli di stile su Heroku

EDIT:

directory dei file dopo la rake assets:precompile

app 
    assets 
    stylesheets 
     application.css 
     application.min.css 
     home.css 
     home.css.scss 
     home.min.css 
     scaffolds.css 
     scaffolds.css.scss 
     scaffolds.min.css 
     startups.css 
     startups.css.scss 
public 
    assets 
    application-3701cb84bbc3c20d5a7ec1aac608fbdb.js 
    application-3701cb84bbc3c20d5a7ec1aac608fbdb.js.gz 
    application-f7ff7ad51f3528ccca1b5c7f2d5b5915.css 
    application-f7ff7ad51f3528ccca1b5c7f2d5b5915.css.gz 
    manifest-ad3babc6c84cc0b38f1a98eb594b8235.json 
    rails-afd7b40a0142ed24738b640e78388de4.png 

Ecco il mio collegamento foglio di stile in application.html.haml:

stylesheet_link_tag "flat-ui", "home.min", media: "all" 

gem flatui-rails è nella mia Gemfile e *= require flat-ui è nel mio file application.css .

EDIT 2:

schiarito la cartella public/assets, ha aggiunto public/assets/* alla mia .gitignore e ha spinto al mio repo Heroku. Durante la compilazione di slug, Heroku ha gestito l'asset pipline e reso /assets/application-b2c82b0573602f3a368a26f36b99542b.css che è anche collegato al codice sorgente del mio sito, ma gli stili non vengono caricati e ottengo The page you were looking for doesn't exist. quando provo a navigare verso il foglio di stile ... E adesso?

Ecco la mia application.html.haml:

!!! 5 
%html 
    %head 
    %title StartupCrawler 
    = stylesheet_link_tag "application", media: "all" 
    = csrf_meta_tags 
    = yield 

risposta

19

Michael, prima di spingere a Heroku provare:

rake assets:precompile

Questo li precompilare nella cartella pubblica in modo che possano essere serviti a Heroku . Fammi sapere se questo non ha funzionato.

Inoltre, assicurarsi che esista la seguente riga in config/ambienti/production.rb

config.serve_static_assets = true 

Poi naturalmente

git push heroku master

+0

Grazie, sento che questo è un passo nella giusta direzione, ma non funziona ancora. Ho aggiunto dettagli sulla mia configurazione nel post originale. Ho il sospetto che ho fatto qualcosa di sbagliato nel mio link 'application.html.haml' –

+0

Dopo aver cambiato il mio' stylesheet_link_tag "flat-ui", "home.min", media: "all" 'a' stylesheet_link_tag "applicazione ", media:" all "' Heroku è quasi collegato a un foglio di stile valido, ma ha fornito '/ assets/application-4cd3d6fa233d3d69d4eb5f32c3ca36b5.css' come collegamento che non era uno degli asset precompilati che ho nelle mie cartelle –

+1

Puoi pubblicare il tuo application.html.haml? Esegui anche "heroku logs" e pubblica l'output. –

0

Invece di controllare in attività compilati in Git, prima lettura this: https://devcenter.heroku.com/articles/ruby-support#plugin-injection-in-rails-4

È possibile aggiungere questo gioiello

gioiello 'rails_12factor'

o aggiungere questo gioiello particolare

rails_serve_static_assets

o modificare manualmente la configurazione in config/environments/production.rb

config.serve_static_assets = true

+2

Qualcuno ha creato un gioiello solo per cambiare * una variabile di configurazione? * C'è qualcosa che ho mi mancano qui? – Zaz

+0

Rails: il framework di programmazione per le persone che non amano programmare. – Chloe

Problemi correlati