2014-02-28 34 views
-1

为了避免“资产未编译”,在生产上的错误我的Rails 3.2的网站,我添加以下行production.rb:如何预编译除一个以外的所有Javascript文件?

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

此预编译的供应商的所有.js文件,所以如果他们准备好了当从页面内部调用时。不幸的是.js文件之一无法预编译没有错误,所以我想跳过它。如何预编译除一个文件以外的所有.js文件,bad-file.js

回答

0

你可能不喜欢这样的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”。您可以更准确地改进正则表达式,添加目录信息或其他内容。

+0

有没有办法用少代码做到这一点?我只有一行,直到现在... –

+0

我更新了。也许它可以为你工作。 – lalameat

0

在您的production.rb文件中,尝试添加此项。

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

相关问题