【问题标题】:How do you Precompile all Javascript Files except One?您如何预编译除一个之外的所有 Javascript 文件?
【发布时间】:2014-02-28 01:51:43
【问题描述】:

为了避免在我的 Rails 3.2 站点上的生产中出现“资产未编译”错误,我在 production.rb 中添加了以下行:

  config.assets.precompile += ['*.js']

这会预编译 vendor 中的所有 .js 文件,以便在从页面内部调用它们时准备好它们。不幸的是,其中一个 .js 文件无法在没有错误的情况下进行预编译,所以我想跳过它。如何预编译除一个文件bad-file.js 之外的所有 .js 文件?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 asset-pipeline


    【解决方案1】:

    你可以在 application.rb 中这样做

        config.assets.precompile << Proc.new do |path|
          if path =~ /\.(css|js)\z/ &&  path!~ /bad-file\.js\z/
            full_path = Rails.application.assets.resolve(path).to_path
            app_assets_path = Rails.root.join('app', 'assets').to_path
            if full_path.starts_with? app_assets_path
              puts "including asset: " + full_path
              true
            else
              puts "excluding asset: " + full_path
              false
            end
          else
            false
          end
        end
    

    你也可以用简单的方法来做,我测试了一下,名字不一样。

    config.assets.precompile = [/^((?!bad-file\.js).)*$/]
    

    这意味着文件路径不应包含子字符串“bad-file.js”。您可以更准确地改进正则表达式,添加目录信息或其他内容。

    【讨论】:

      【解决方案2】:

      在你的 production.rb 文件中尝试添加这个。

      config.assets.precompile += %w(bad-file.js)

      【讨论】:

        猜你喜欢
        • 2017-07-05
        • 2012-05-31
        • 1970-01-01
        • 2016-09-25
        • 1970-01-01
        • 2014-06-08
        • 2019-07-21
        • 1970-01-01
        • 2023-02-26
        相关资源
        最近更新 更多