首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >epp模板的键值散列

epp模板的键值散列
EN

Stack Overflow用户
提问于 2017-08-02 18:15:32
回答 1查看 3.2K关注 0票数 3

如何将下一段代码从erb模板移植到epp:

代码语言:javascript
复制
<%- if @mime_types -%>

# Custom additional mime types
<%- @mime_types.sort_by {|key,value| key}.each do |key,value| -%>
<%= key %> <%= value %>;
<%- end -%>
<%- end -%>

或者如何在epp模板中使用键值散列。例如,下一个代码返回错误“无效EPP:语法错误在‘AC.26’‘”

代码语言:javascript
复制
# mime.types.epp
<%- | Hash[String, String] $nginx::config::mime_types | -%>
<% include stdlib -%>
<% $nginx::config::mime_types.keys.sort.each |$key| { -%>
    <%= $key %> <%= $nginx::config::mime_types[$key] %>
<% } -%>

舱单:

代码语言:javascript
复制
# manifests/config.pp
class nginx::config {
  $mimetypes=lookup('nginx::mimetypes')
  file { "${nginx::params::conf_dir}/mime.types":
    ensure  => file,
    content => epp("${module_name}/mime.types.epp"),
  }

希拉:

代码语言:javascript
复制
nginx::mimetypes:
  video/ogg: 'ogv'

木偶版本:

代码语言:javascript
复制
#puppet --version
5.0.1

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-10 14:37:37

1)不可能在epp模板中使用模型$classname::subclassname::lookup_variable进行散列

2)仅需在启动epp模板上使用<%- | Hash[String, String] $mime_types | -%><% include stdlib -%>

正确档案:

代码语言:javascript
复制
# manifests/config.pp
class nginx::config {
  $mimetypes=lookup('nginx::mimetypes')
  file { "${nginx::params::conf_dir}/mime.types":
    ensure  => file,
    content => epp("${module_name}/mime.types.epp", { mimetypes => $mimetypes }),
}

# mime.types.epp
<%- | Hash[String, String] $mimetypes | -%> # 1 line
<% include stdlib -%> # 2 line
# some code...
<% $mimetypes.keys.sort.each |$key| { -%>
    <%= $key %> <%= $mimetypes[$key] %>
<% } -%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45468202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档