gpt4 book ai didi

ruby-on-rails - 从开发环境中的管道中排除某些 Assets ?

转载 作者:行者123 更新时间:2023-12-04 00:45:06 24 4
gpt4 key购买 nike

我想以某种方式阻止某些 Assets 被包含在开发环境中的 Assets 管道中。

到目前为止,我已经尝试了以下方法:

# app/assets/javascripts/application.js.erb
<% if Rails.env.production? %>
//= require google_analytics_snippet
<% end %>


# app/assets/javascripts/application.js.erb    
<% if ENV['RACK_ENV'] == 'production' %>
//= require google_analytics_snippet
<% end %>

我似乎要实现的只是 //= require google_analytics_snippet行出现在 list 中。 google_analytics_snippet.js 文件中的实际代码永远不会加载,无论我使用这些尝试的解决方案中的任何一个时的环境如何。

有没有办法做到这一点?

编辑:
当我第一次发布这个问题时,我在我的示例中使用了一个名为 olark.js 的 javascript 文件。这是一个糟糕的例子选择,因为 Olark有一个 ruby​​gem 可以解决这个问题。我已经更改了示例,因为我正在寻找通用表单解决方案。

最佳答案

我查看了 sprockets 的来源,我发现,
指令预处理器总是在任何引擎之前运行。
因此,不可能使用 ERB 或其他引擎将任何条件逻辑添加到指令部分。

  • https://github.com/sstephenson/sprockets/blob/master/lib/sprockets/environment.rb#L51
  • https://github.com/sstephenson/sprockets/blob/master/lib/sprockets/processing.rb#L36
  • https://github.com/sstephenson/sprockets/blob/master/lib/sprockets/context.rb#L174

  • 更新

    约书亚·皮克, answered关于我的问题:

    The answer is yes, but if this is what you are trying to do:

    <% if Rails.env.production? %> 
    //= require google_analytics_snippet
    <% end %>

    try this instead:

    <% if Rails.env.production?
    require_asset "google_analytics_snippet"
    end %>

    关于ruby-on-rails - 从开发环境中的管道中排除某些 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485269/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com