Я пытаюсь запустить свое приложение в производство, а пути к изображениям и 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
.