Dateien, die von Asset: Precompile erstellt wurden, stimmen nicht mit den URLs überein, die von Stylesheet_Link_Tag (fehlender Digest) in der Minimal Rails 4-Site erstellt wurden
Ich benutzeRuby 2.0.0-p247
undRails 4.0.0
Wenn ich eine minimale Rails 4-Site wie diese erstelle:
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
Dann kompilieren Sie die Assets mit
rake assets:precompile
Es generiert Assets wie:
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
Aber wenn ich den Server im Produktionsmodus starte, mit
RAILS_ENV=production rails s
Die generierten URLs im HTML verweisen nicht auf die vorkompilierten Dateien:
<link data-turbolinks-track="true" href="/stylesheets/application.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/javascripts/application.js"></script>
Ich würde eher erwarten:
<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>
Der Standardconfig/environments/production.rb
Einstellungen sagen, um Digests zu verwenden:
config.assets.digest = true
Aber es scheint selektiv ignoriert zu werden?
Vermisse ich etwas?
AKTUALISIEREN:
Ich habe dies gerade in Rails 4.2.3 getestet und dies scheint behoben zu sein, wir müssen jedoch noch ein paar Umgebungsvariablen in die übergebenrails s
Befehl zum Starten im Produktionsmodus:
SECRET_KEY_BASE=$(rake secret) RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production rails s