stylesheet_link_tag和javascript_include_tag在生产中创建没有摘要的标签

时间:2013-09-14 07:52:28

标签: ruby-on-rails ruby nginx asset-pipeline ruby-on-rails-4

我的环境

  • rails(4.0.0)
  • ruby​​ 2.0.0p247

并使用nginx和unicorn。

我在app / views / layout / application.html.erb

中有以下代码
<%= stylesheet_link_tag    "application", media: "all" %>
<%= javascript_include_tag "application" %>

他们创建没有摘要的html标签。

<link href="/assets/application.css" media="all" rel="stylesheet" />
<script src="/assets/application.js"></script>

我做资产:像这样预编译。

$ RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile

用摘要创建css和js。

application-9746528cde7f7180a473328fd274c2ce.js
application-c0773e3ecaf5e09f2eef46885eebefe1.css

所以我的Rails应用程序无法加载css和js。

当然,我可以访问http://example.com/assets/application-c0773e3ecaf5e09f2eef46885eebefe1.css

以下是我的config / environments / production.rb

Myapp::Application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = false
  config.assets.js_compressor  = :uglifier
  config.assets.compile = false
  config.assets.digest = true
  config.assets.version = '1.0'
  config.log_level = :info
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
end

我的配置有错误吗?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。

启动独角兽的方法是错误的。 当我开始像这样的独角兽时,我忘了设置RAILS_ENV。

$ unicorn -c config/unicorn.rb -D 

然而正确的方式如下

$ unicorn -c config/unicorn.rb -D -E production

感谢