файлы, созданные ресурсом: прекомпиляция не соответствует URL-адресам, созданным stylesheet_link_tag (отсутствует дайджест) на сайте минимальных рельсов 4
я используюRuby 2.0.0-p247
а такжеRails 4.0.0
Если я сделаю минимальный сайт Rails 4, как это:
rails new minimal
cd minimal
rails generate controller home index
tee config/routes.rb <<EOF
Minimal::Application.routes.draw do
root 'home#index'
end
EOF
Затем прекомпилируйте активы с
rake assets:precompile
Он генерирует активы, такие как:
I, [2013-09-04T17:05:36.992951 #3549] INFO -- : Writing /WORKINGDIR/minimal/public/assets/application-723d1be6cc741a3aabb1cec24276d681.js
I, [2013-09-04T17:05:37.052303 #3549] INFO -- : Writing /WORKINGDIR/minimal/public/assets/application-f1a14051f17824976271b9c0460232f0.css
Но если я запускаю сервер в производственном режиме, с
RAILS_ENV=production rails s
Сгенерированные URL в HTML не указывают на предварительно скомпилированные файлы:
<link data-turbolinks-track="true" href="/stylesheets/application.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/javascripts/application.js"></script>
Я ожидаю, скорее:
<link data-turbolinks-track="true" href="assets/application-f1a14051f17824976271b9c0460232f0.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/assets/application-723d1be6cc741a3aabb1cec24276d681.js"></script>
По умолчаниюconfig/environments/production.rb
настройки говорят использовать дайджесты:
config.assets.digest = true
Но это, кажется, выборочно игнорируется?
Я что-то пропустил?
ОБНОВИТЬ:
Я только что проверил это в Rails 4.2.3, и это, кажется, исправлено, однако нам нужно передать еще несколько переменных среды вrails s
Команда для запуска в производственном режиме:
SECRET_KEY_BASE=$(rake secret) RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production rails s