资产预编译错误

Posted

技术标签:

【中文标题】资产预编译错误【英文标题】:Assets Precompile Error 【发布时间】:2017-09-29 14:41:11 【问题描述】:

当我运行 rake RAILS_ENV=production assets:precompile --trace 来预编译我的资产以进行生产时,我收到了这个错误。我添加了 production.rb 文件。

Invoke assets:precompile (first_time)
Invoke assets:environment (first_time)
Execute assets:environment
Invoke environment (first_time)
Execute environment
rake aborted! 
No such middleware to insert before: ActionDispatch:Static

production.rb

Rails.application.configure do

  config.cache_classes = true


  config.eager_load = true


  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

  config.assets.js_compressor = :uglifier


  config.assets.compile = false

  config.server_static_assets = false

  config.log_level = :debug

  config.action_mailer.perform_caching = false

  config.log_formatter = ::Logger::Formatter.new


  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger = ActiveSupport::TaggedLogging.new(logger)
  end

  config.active_record.dump_schema_after_migration = false
end

这两天让我发疯了。任何帮助都是适当的。

【问题讨论】:

你能给我们看看production.rb文件吗? @Cyzanfar 我添加了 production.rb 文件。 【参考方案1】:

只是改变:

config.serve_static_assets = false

进入:

config.serve_static_files = false

如果有帮助,请告诉我。

【讨论】:

尝试通过更改proudction.rb文件进行预编译时仍然出现同样的错误。【参考方案2】:

我发现我查看了公共文件夹并清除了其中的内容,然后运行 ​​rails assets:precompile 并在文件名末尾创建了所有带有指纹的新文件。

我的 application.rb 中也有 config.middleware.insert_before ActionDispatch::Static, Rack::Deflater 我删除了这一行并加载了所有内容。

【讨论】:

以上是关于资产预编译错误的主要内容,如果未能解决你的问题,请参考以下文章

为生产预编译资产时,没有方法错误,[ ] 未定义 nil 类

资产预编译期间未找到文件错误

Heroku 部署错误;预编译资产失败(注意 devise.rb 中的行)

Rake 资产:Heroku 错误上的预编译

Heroku 上的“application.css 未预编译”错误,CDN 上有远程资产

rails and metronic - 资产预编译:SassC 错误,空间不足