在layout
文件haml
我想確定我們是否在我們的開發和構建環境。我們正在使用Middleman。如何知道代碼在什麼環境下運行?
我願做這樣的事情:
- if environment == 'development'
/Development Code
= javascript_include_tag "Dev.js"
我試圖訪問Ruby的環境變量,以及自定義一個變量在config.rb
文件,但沒有成功。
在layout
文件haml
我想確定我們是否在我們的開發和構建環境。我們正在使用Middleman。如何知道代碼在什麼環境下運行?
我願做這樣的事情:
- if environment == 'development'
/Development Code
= javascript_include_tag "Dev.js"
我試圖訪問Ruby的環境變量,以及自定義一個變量在config.rb
文件,但沒有成功。
你幾乎得到它的權利 - 你需要覈對的象徵,而不是一個字符串:
- if environment == :development
/Development Code
= javascript_include_tag "Dev.js"
中間人還增加了development?
and build?
methods這可能是更容易使用:
- if development?
/Development Code
= javascript_include_tag "Dev.js"
這也適用於ERB:
<% if development? %>
<!-- Development Code -->
<%= javascript_include_tag "Dev.js" %>
<% end %>
首先,如果可能的話,您應該將邏輯與數據分開。確定您的控制器中的環境,並切換髮送到視圖的數據(HAML佈局文件)。
通常情況下,您會在環境變量中設置一個標誌,並在您的代碼中從ENV
訪問它。例如,西納特拉使得使用它們RACK_ENV
符號裏面的代碼提供的開發/測試/生產環境:
:environment - configuration/deployment environment A symbol specifying the deployment environment; typically set to one of :development, :test, or :production. The :environment defaults to the value of the RACK_ENV environment variable (ENV['RACK_ENV']), or :development when no RACK_ENV environment variable is set. The environment can be set explicitly: set :environment, :production
如果推出自己的,那就是去了解它的好方法。
使用:中間人創建的環境符號S按默認值: http://rubydoc.info/github/middleman/middleman/Middleman/Application#environment-instance_method
結合HAML - 你可以這樣做:
= javascript_include_tag "Dev.js" unless :environment == "developement"
注意middlemans建設過程改變了:環境價值,以「建」
你也可以用發展論壇?測試是否是對開發還是不:http://rubydoc.info/github/middleman/middleman/Middleman/Application#development%3F-instance_method
上述所有適用於中間人3.0.6,並且可能不小的版本(請務必在2.X將無法正常工作)
上工作