2012-07-11 13 views
13

Mam kilka stron statycznych, które działają lokalnie jako localhost: 3000/foo.html, ale to nie działa po przesłaniu do heroku.aplikacja szyn na heroku, nie widać stron statycznych w/folderze publicznym

Próbowałem dodanie następujących do pliku routes.rb:

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

ale to nie wydają się działać, to przekierowuje mnie do foobar.com/public/foo.html, ale nadal nic nie znajdzie tam.

+1

Czy masz 'config.serve_static_assets = true' w konfiguracji środowiska produkcyjnego? –

+0

Mam to ustawione na true – cbass

+0

W jakiś sposób statyczne pliki nigdy nie dotarły do ​​strony heroku, moja zła. – cbass

Odpowiedz

38

Per this article, trzeba powiedzieć Rails służyć aktywa statycznych sama z:

config.serve_static_assets = true 

w swojej config/environments/production.rb

+0

Przypadkowo zagłosowałem na tę odpowiedź i nie pozwolę mi zmienić głosu, ale jest poprawne, dziękuję –

+0

Upewnij się również, że nie zawierasz twój publiczny folder w .gitignore. Jeśli chcesz uwzględnić tylko niektóre pliki, możesz zignorować folder publiczny i wykluczyć pliki, które chcesz zignorować. Podoba mi się: /publiczna/* ! /public/404.html – rpbaltazar

0

Ewentualnie można dodać rails_12factor gem do grupy produkcji:

gem 'rails_12factor', group: :production 

zgodnie z Heroku. Spowoduje to również przekierowanie logu do stdout, jak również wymagane przez Heroku.

0

To zadziwiło mnie godzinami, ale tutaj jest inne potencjalne rozwiązanie. Z jakiegoś powodu mogłem wygenerować dokumentację pod numerem /public/docs, ale dokumentacja nie załadowałaby się, nawet natychmiast po wygenerowaniu. Uruchomiłbym konsolę Buga Heroku, wygenerowałem dokumentację, wyjdę, a następnie ponownie uruchomię Heroku bash, aby stwierdzić, że /public nie zawiera już mojego folderu docs.

Jedynym rozwiązaniem, które znalazłem, było włączenie dokumentacji do repozytorium Git. To był jedyny sposób, w jaki Heroku przetrwał /public/docs we wszystkich wdrożeniach i instancjach bash.

Nie mam pojęcia, dlaczego tak jest ... Otworzyłem bilet wsparcia z Heroku i czekam na odpowiedź.

+0

Czy mógłbyś opublikować odpowiedź, którą otrzymałeś od zespołu wsparcia Heroku? to może pomóc innym. –

Powiązane problemy