【问题标题】:stylesheet_link_tag and javascript_include_tag create tags without digest in productionstylesheet_link_tag 和 javascript_include_tag 在生产中创建没有摘要的标签
【发布时间】:2013-09-14 07:52:27
【问题描述】:

我的环境是

  • 导轨 (4.0.0)
  • 红宝石 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

我的配置有什么错误吗?

【问题讨论】:

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


    【解决方案1】:

    我解决了这个问题。

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

    $ unicorn -c config/unicorn.rb -D 
    

    但是正确的方法如下

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

    谢谢

    【讨论】:

    • 很好地解决了这个问题。您可以接受自己的答案来将此问题标记为已回答吗?
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    相关资源
    最近更新 更多