2
我在這裏有點堅果。Rails的HAML資源precompile與initialize_on_precompile錯誤
我有2臺服務器(heroku,相同的配置)在2個環境(分段,生產)。
分段按需編譯我的資產/模板,並緩存它沒有問題。 生產用作未編譯爲html(即HAML標記)文件
的問題是:在2對環境的配置是相同的(除了郵件服務器)
寶石,環境配置和YML是相同的。
任何想法?
更新:
引入haml資產,其中兩臺服務器而生的 「預編譯」。由於爲生產而編譯的資產,分段沒有使文件丟失並重新編譯。
現在我堅持將haml添加到initialize_on_precompile爲false的資產編譯管道中。
staging.rb/production.rb
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=2592000"
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
config.assets.precompile += %w(jquery.js modernizr+respond.js polyfills.js)
config.assets.precompile += %w(gp.js ad.js richmarker.js infobox.js)
config.assets.css_compressor = :yui
config.assets.js_compressor = :uglifier
config.assets.compress=true
config.threadsafe! unless $rails_rake_task
config.i18n.fallbacks = true
config.logger = Logger.new(STDOUT)
config.logger.level = Logger.const_get(ENV['LOG_LEVEL'] ? ENV['LOG_LEVEL'].upcase : 'INFO')
config.active_support.deprecation = :notify
config.action_dispatch.rack_cache = {
:metastore => Dalli::Client.new,
:entitystore => 'file:tmp/cache/rack/body',
:allow_reload => false
}
Haml::Template.options[:ugly] = true
對此的任何更新? – Nikola
這是一個棘手的問題。預編譯器從未完成編譯haml資源。並且分段服務於他們在運行時編譯。 –