3

Sprockets を使用してアセットを条件付きで要求するにはどうすればよいですか?

質問する前に解決策をグーグルで検索し、Sprockets リポジトリでこのディスカッションを見つけました -条件付きの要求

そこで議論されている解決策は、ERB を使用することです。

<% require_asset "#{ActiveScaffold.js_framework}/my_test" %>

私はこの方法で試しました:

app.js.erb

<% if debug == true %>
   <% require_asset "lib-debug" %>
<% else %>
   <% require_asset "lib-min" %>
<%end%>

レーキファイル

def bundle_app(debug)
  env = Sprockets::Environment.new
  env.append_path "app/"
  env.js_compressor = Uglifier.new
  assets = env.find_asset("app.js.erb")
  return assets.to_s
end

しかし、次のエラーが発生します。

#<#:0x00000001576d30> の未定義のローカル変数またはメソッド「debug」

確かに簡単に修正できるエラーがいくつかありますが、私はRubyに慣れていないので、それを見つけることができません.

4

2 に答える 2

1

おそらく、あなたの例では debug をパラメーターとして使用しているため、開発環境でアセットを使用するために setle を使用できますか?

その場合、config/environments/development.rb で

config.assets.precompile << 'lib-debug.js'
于 2012-11-02T03:18:26.273 に答える