小编pix*_*pix的帖子

asset:precompile生成的文件与stylesheet_link_tag(缺少摘要)在最小rails 4站点中生成的url不匹配

我正在使用Ruby 2.0.0-p247Rails 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)

但它似乎被选择性地忽略了?

我错过了什么吗?

更新: …

ruby-on-rails asset-pipeline ruby-on-rails-4

12
推荐指数
1
解决办法
3152
查看次数