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:precompile
i się udaje i widzę pliki z odciskami palców wpublic/assets
katalogu.
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/assets
i 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
.