2012-07-11 9 views
13

Ho un paio di pagine statiche che quando funzionano localmente funzionano come localhost: 3000/foo.html, ma questo non funziona una volta caricato su heroku.app per rotaie in esecuzione su heroku, impossibile vedere le pagine statiche in/cartella pubblica

Ho provato ad aggiungere il seguente al file routes.rb:

match '/foo', :to => redirect('/public/foo.html') 

ma questo non sembra funzionare, mi reindirizza a foobar.com/public/foo.html, ma trova ancora niente Là.

+1

Avete 'config.serve_static_assets = true' nella configurazione dell'ambiente di produzione? –

+0

Ho impostato su true – cbass

+0

In qualche modo i file statici non sono mai passati al lato heroku, il mio male. – cbass

risposta

38

Per this article, è necessario dire a Rails di servire si attivi statici con:

config.serve_static_assets = true 

nel vostro config/environments/production.rb

+0

Ho accidentalmente votato questa risposta, e non mi permetterà di cambiare il voto, ma è corretto, grazie –

+0

Assicurati anche di non aver incluso la tua cartella pubblica nel file .gitignore. Se si desidera includere solo determinati file, è possibile ignorare la cartella pubblica ed escludere i file che si desidera ignorare. Come: /public/* ! /public/404.html – rpbaltazar

0

In alternativa è possibile aggiungere l'rails_12factor gemma al gruppo di produzione:

gem 'rails_12factor', group: :production 

secondo Heroku. Questo reindirizzerà anche il log a stdout come richiesto anche da Heroku.

0

Questo mi ha sconcertato per ore, ma ecco un'altra potenziale soluzione. Per qualche motivo, potrei generare documentazione in /public/docs, ma la documentazione non verrà caricata, anche immediatamente dopo che l'ho generata. Avrei eseguito una console bash Heroku, generato la documentazione, esci, quindi eseguivo nuovamente Heroku bash solo per scoprire che /public non conteneva più la cartella docs.

Quindi, l'unica soluzione che ho trovato è stata includere la documentazione nel repository Git. Questo era l'unico modo in cui Heroku persisteva /public/docs in distribuzioni e istanze di bash.

Non ho idea del perché sia ​​... Ho aperto un ticket di supporto con Heroku e sono in attesa di una risposta.

+0

potresti per favore postare una risposta che hai ricevuto dal team di supporto di heroku? questo potrebbe aiutare gli altri. –

Problemi correlati