加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 资产生成的文件:预编译不符合stylesheet_link

发布时间:2020-12-16 21:35:24 所属栏目:百科 来源:网络整理
导读:我使用的是 Ruby 2.0.0-p247和Rails 4.0.0 如果我做一个最小的Rails 4站点,这样: rails new minimalcd minimalrails generate controller home indextee config/routes.rb EOFMinimal::Application.routes.draw do root 'home#index'endEOF 然后预先编制资
我使用的是 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

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>

我会期望,而是:

<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

解决方法

当我写这个问题时,我遇到了这个博客文章,这表明它是一个错误.

http://railsblog.kieser.net/2013/08/rails4-phusion-passenger-asset-pipeline.html

在各种建议中,只需将编译回退设置为true …

config.assets.compile = true

似乎足以让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>

另一个建议,显式地设置RAILS_ENV和RAILS_GROUPS似乎在预编译文件上产生不同的摘要字符串,但是它们总是似乎与生成的HTML匹配.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读