资产预编译错误
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 中的行)