2013-04-18 3 views
11

Na mojej lokalnej maszynie, gdy przeglądam moją aplikację Rails, moje arkusze stylów są z powodzeniem połączone pod /assets/stylesheets/, ale na Heroku zmieniono ją na /stylesheets/ prawdopodobnie w katalogu public i nie działa! Jak mogę przekonwertować arkusze stylów na public/stylesheets podczas kompilacji?Arkusze stylów szyny na Heroku

EDIT:

katalogu plików po 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 

Oto mój związek stylów w application.html.haml:

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

gem flatui-rails jest w moim Gemfile i *= require flat-ui jest w moim pliku application.css .

EDIT 2:

Wyczyszczone mój folder public/assets dodał public/assets/* do mojego .gitignore i pchnął do mojego Heroku repo. Podczas kompilacji gry z srokiem Heroku uruchomił linię aktywów i utworzył /assets/application-b2c82b0573602f3a368a26f36b99542b.css, który jest również powiązany z kodem źródłowym mojej strony, ale style nie ładują się i otrzymuję The page you were looking for doesn't exist., kiedy próbuję przejść do arkusza stylów ... Co teraz?

Oto mój application.html.haml:

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

Odpowiedz

19

Michael, zanim push Heroku spróbować:

rake assets:precompile

Będzie precompile je w folderze publicznym tak, że mogą one być podawane do Heroku . Daj mi znać, jeśli to nie zadziałało.

Ponadto, upewnij się, że istnieje następujący wiersz w config/środowiskach/production.rb

config.serve_static_assets = true 

Wtedy oczywiście

git push heroku master

+0

Dzięki, mam wrażenie, że to krok we właściwym kierunku, ale wciąż nie działa. Dodałem szczegóły dotyczące mojej konfiguracji w oryginalnym poście. Mam podejrzenie, że zrobiłem coś złego w moim stylu "application.html.haml" link –

+0

Po zmianie mojej aplikacji "stylesheet_link_tag" flat-ui "," home.min ", media:" all "to" stylesheet_link_tag " ", media:" all "' Heroku prawie łączyło się z poprawnym arkuszem stylów, ale dało '/ assets/application-4cd3d6fa233d3d69d4eb5f32c3ca36b5.css' jako link, który nie był żadnym z prekompilowanych zasobów, które mam w moich folderach. –

+1

Czy możesz opublikować application.html.haml? Uruchom także "logi heroku" i opublikuj dane wyjściowe. –

0

Zamiast sprawdzać w zebranych aktywów w Git, najpierw przeczytać to: https://devcenter.heroku.com/articles/ruby-support#plugin-injection-in-rails-4

Możesz dodać ten klejnot

gem 'rails_12factor'

lub dodać ten klejnot konkretnie

rails_serve_static_assets

lub ręcznie zmienić config w config/environments/production.rb

config.serve_static_assets = true

+2

Ktoś zrobił klejnot tylko po to, aby zmienić * jedną zmienną konfiguracyjną? * Czy jest coś "tu mnie brakuje? – Zaz

+0

Szyny: Schemat programowania dla osób, które nie lubią programować. – Chloe