Próbuję wprowadzić moją aplikację do produkcji, a ścieżki zasobów obrazu i css nie działają.
Oto, co obecnie robię:
- Zasoby graficzne znajdują się w /app/assets/images/image.jpg
- Arkusze stylów znajdują się w /app/assets/stylesheets/style.css
- W moim układzie odwołuję się do pliku css w następujący sposób:
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %> - Przed ponownym uruchomieniem jednorożca uruchamiam
RAILS_ENV=production bundle exec rake assets:precompilei się udaje i widzę pliki z odciskami palców wpublic/assetskatalogu.
Kiedy przeglądam moją witrynę, otrzymuję błąd 404 nie znaleziono dla adresu mysite.com/stylesheets/styles.css.
Co ja robię źle?
Aktualizacja: W moim układzie wygląda to tak:
<%= stylesheet_link_tag "bootstrap.min", media: "all", "data-turbolinks-track" => true %>
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Generowane źródło jest następujące:
<link data-turbolinks-track="true" href="/stylesheets/bootstrap.min.css" media="all" rel="stylesheet" />
<link data-turbolinks-track="true" href="/stylesheets/styles.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/assets/application-0c647c942c6eff10ad92f1f2b0c64efe.js"></script>
Wygląda na to, że Railsy nie szukają poprawnie skompilowanych plików css. Ale to bardzo mylące, dlaczego działa poprawnie dla skryptów javascript (zwróć uwagę na /assets/****.jsścieżkę).
<%= stylesheet_link_tag "style", media: "all", "data-turbolinks-track" => true %>
public/assetsi 2. sprawdź, czy nie ma gdzieś innej instrukcji próbującej załadować ten plik css (prawdopodobnie zakodowany na
.home {background: #FFF url(<%= image_path 'hippopotamus.jpg' %>) no-repeat; }rzeczywistości można go wymienić w zębatce na .home {background: #FFF url(image-path('hippopotamus.jpg')) no-repeat; }. Może spróbuj, jeśli to pomoże.
stylesheet_link_tag.