1

我是第一次创建一个新的中间人网站。我有大约 20,000 页我想将其设为静态,除了这 1 个令人沮丧的问题外,我几乎就在那里。我有一个每月生成的 CSV 文件,我将转换为 yaml。

我的结构与以下相同:data/people.yml(来自中间人网站的代码)

friends:
  -
    name: Bob Smith
    address: 101 Foo Lane
    birth: 1966-03-03
  -
    name: Mary Johnson
    address: 120 Bar St
    birth: 1967-06-18

我可以使用以下代码顺利循环:

<% data.people.friends.each do |f| %>
<%= f.name %><br/>
<%= f.address %><br/>
<%= f.birth %><br/><br/>
<% end %>

产生:

Bob Smith
101 Foo Lane
1966-03-03

Mary Johnson
120 Bar St
1967-06-18

我的目标是当用户访问http://www.web_site_here.com/people/bob.html等时获得 Bob 的信息,

我已经尝试了几种方法,例如下面的方法,但没有运气。

<% data.people.friends.each do |name, person| %>
   <%= person.name %>
<% end %>
4

1 回答 1

0

您将需要为每个人创建代理页面。请参阅此处的示例https://middlemanapp.com/advanced/dynamic-pages/

您创建一个模板(例如 person.html.erb),它只显示一个人的信息,例如

<%= f.name %><br/>
<%= f.address %><br/>
<%= f.birth %><br/><br/>

然后在您的 config.rg 中循环访问人员并使用该模板和 yaml 数据为每个人创建一个动态页面。

data.people.friends.each do |f|
    proxy "/people/#{f.name}.html", "/person.html", :locals => { :f => f }
end
于 2018-02-06T15:09:46.410 回答