【问题标题】:Make Rails asset behaviour dependent on Environment使 Rails 资产行为依赖于环境
【发布时间】:2012-03-23 00:00:54
【问题描述】:

我想知道 Rails 资产是否可以根据环境而变化。

类似:

function log(m) {
  <% if Rails.env=='development' %>
    console.log(m)
  <% end %>
}

同样,您可以通过在样式表中创建特定于环境的功能来显示特殊的消息或配色方案。

(我意识到资产是在生产环境中编译的,这就是为什么我不希望在服务器运行时使用任意 Ruby 代码来执行此操作。但我想知道是否有办法至少在环境中执行此操作。)

【问题讨论】:

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


    【解决方案1】:

    Asset Pipeline, Preprocessing

    动态Javascript

    在您的 javascript 清单文件中app/assets/javascripts/application.js

    //...
    //= dynamic_js
    //...
    

    app/assets/javascripts/dynamic_js.js.erb

    function log(m) {
      <% if Rails.env=='development' %>
        console.log(m)
      <% end %>
    }
    

    动态 CSS

    在您的样式表清单中:app/assets/stylesheets/application.css

    /*...
    *= dynamic_css
    */
    

    app/assets/stylesheets/dynamic_css.css.erb

    .environment-color {
      <% if Rails.env == 'development' %>
        color: <%= 'red' %>
      <% else %>
        color: <%= 'white' %>
      <% end %>
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多