pix*_*pix 12 ruby-on-rails asset-pipeline ruby-on-rails-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
Run Code Online (Sandbox Code Playgroud)
然后使用预编译资产
rake assets:precompile
Run Code Online (Sandbox Code Playgroud)
它生成如下资产:
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
Run Code Online (Sandbox Code Playgroud)
但是,如果我在生产模式下启动服务器,请使用
RAILS_ENV=production rails s
Run Code Online (Sandbox Code Playgroud)
HTML中生成的URL不指向预编译的文件:
<link data-turbolinks-track="true" href="/stylesheets/application.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/javascripts/application.js"></script>
Run Code Online (Sandbox Code Playgroud)
我希望,而是:
<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>
Run Code Online (Sandbox Code Playgroud)
默认config/environments/production.rb设置说使用摘要:
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
但它似乎被选择性地忽略了?
我错过了什么吗?
更新:
我刚刚在Rails 4.2.3中对此进行了测试,这似乎是固定的,但是我们需要将更多的环境变量rails s交给命令以在生产模式下启动:
SECRET_KEY_BASE=$(rake secret) RAILS_SERVE_STATIC_FILES=true RAILS_ENV=production rails s
Run Code Online (Sandbox Code Playgroud)
pix*_*pix 12
当我写这个问题的时候,我发现这个博客文章表明这是一个错误.
http://railsblog.kieser.net/2013/08/rails4-phusion-passenger-asset-pipeline.html
在各种建议中,只需设置编译回退真实...
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)
似乎足以让Rails生成适当消化的URL:
<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>
Run Code Online (Sandbox Code Playgroud)
明确设置RAILS_ENV和RAILS_GROUPS的另一个建议似乎在预编译文件上产生了不同的摘要字符串,但它们似乎总是与生成的HTML匹配.
| 归档时间: |
|
| 查看次数: |
3152 次 |
| 最近记录: |