【问题标题】:Sprockets manifest file - dual Rails 3 / Rails 4Sprockets 清单文件 - 双 Rails 3 / Rails 4
【发布时间】:2014-12-09 16:35:11
【问题描述】:

我想知道是否有人乐于管理双启动实时环境(RoR 3 和 RoR 4,并排 - 用于回滚选项),我在这两个环境中都使用 sprocket版本。

但是,在 rails 3 中,我们在服务器之间同步 manifest.yml,对于 rails4,我现在有 manifest-*.json... 我需要零停机时间来做到这一点,资产由 CDN 提供。但是资产到摘要资产名称的映射当然是在所有服务器中完成的。

想法?

到目前为止,我手头有:

module Sprockets
  module Rails
    module Helper

    @@old_manifest_format

      def asset_digest_path(path, options = {})
        if manifest = assets_manifest
          yaml_dictionary ||=YAML.load_file('./public/assets/manifest.yml') rescue {}
          if digest_path = (yaml_dictionary[path] || manifest.assets[path])
            return digest_path
          end
        end

        if environment = assets_environment
          if asset = environment[path]
            return asset.digest_path
          end
        end
      end

    end
  end
end

但一定有更好的方法,还是有?

【问题讨论】:

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


    【解决方案1】:

    到目前为止,唯一可行的解​​决方案是初始化程序,config/initizilier/sprockets_patch.rb:

    if Rails.env.production?
      SPROCKETS_OLD_MANIFEST_FORMAT = YAML.load_file('./public/assets/manifest.yml') rescue {}
    end
    

    而不是补丁本身,lib/core_ext/sprockets/asset_digest_path.rb:

    #### Temporary override to allow Rails 4 to work with rails 3 manifest.yaml
    module Sprockets
      module Rails
        module Helper
    
          def asset_digest_path(path, options = {})
            if manifest = assets_manifest
              if digest_path = (SPROCKETS_OLD_MANIFEST_FORMAT[path] || manifest.assets[path])
                return digest_path
              end
            end
    
            if environment = assets_environment
              if asset = environment[path]
                return asset.digest_path
              end
            end
          end
    
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2018-09-21
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多