1

我的环境是

  • 导轨 (4.0.0)
  • 红宝石 2.0.0p247

并使用 nginx 和独角兽。

我在 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

我的配置有什么错误吗?

4

1 回答 1

1

我解决了这个问题。

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

$ unicorn -c config/unicorn.rb -D 

但是正确的方法如下

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

谢谢

于 2013-09-14T09:36:17.530 回答