2014-02-28 37 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)

相關問題