Я намагаюся вкласти своє додаток у виробництво, а зображення та шляхи активів css не працюють.
Ось що я зараз роблю:
- Графічні активи живуть у /app/assets/images/image.jpg
- Таблиці стилів живуть у /app/assets/stylesheets/style.css
- У своєму макеті я посилаю на файл css так:
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
- Перш ніж перезапустити єдиноріг, я запускаю,
RAILS_ENV=production bundle exec rake assets:precompile
і це вдається, і я бачу файли з відбитками пальців уpublic/assets
каталозі.
Коли я переглядаю свій сайт, я отримую помилку 404 не знайдено mysite.com/stylesheets/styles.css
.
Що я роблю неправильно?
Оновлення: У моєму макеті це виглядає приблизно так:
<%= 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 %>
Генератор джерела такий:
<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>
Схоже, Rails неправильно шукає зібрані файли css. Але це дуже заплутано, чому він працює правильно для javascripts (помічайте /assets/****.js
шлях).
<%= stylesheet_link_tag "style", media: "all", "data-turbolinks-track" => true %>
public/assets
та 2. подвійну перевірку, якщо десь не існує іншої інструкції, яка намагається завантажити цей файл css (імовірно, жорстко закодований)
.home {background: #FFF url(<%= image_path 'hippopotamus.jpg' %>) no-repeat; }
насправді можна замінити на зірочку на .home {background: #FFF url(image-path('hippopotamus.jpg')) no-repeat; }
. Можливо, ви можете спробувати, якщо це допоможе.
stylesheet_link_tag
.