【问题标题】:Middleman Dynamic Pages Issue中间人动态页面问题
【发布时间】:2012-03-04 12:48:56
【问题描述】:

所以我有一个名为 development.sqlite3 的数据库,它与我的 config.rb 位于同一目录中。

当我进入 IRB 并输入以下内容时:

require 'data_mapper'
DataMapper.setup :default, "sqlite://#{Dir.pwd}/development.sqlite3"

class Post
      include DataMapper::Resource
      property :title,      String
      property :slug_url,   String, :key => true
      property :desc,       String
      property :content,    Text
      property :project,    String
      property :target_url, Text
      property :trackback,  Integer
      property :updated_at, String
      property :created_at, DateTime  # A DateTime, for any date you might like.
end


DataMapper.finalize
DataMapper.auto_upgrade!
posts = Post.all 
puts post.slug_url

这会像我预期的那样踢出所有 slug_urls。这是我在 config.rb 文件开头的内容。

require 'data_mapper'
require 'builder'
require 'maruku'

DataMapper.setup :default, "sqlite://#{Dir.pwd}/development.sqlite3"

class Post
  include DataMapper::Resource
  property :title,      String
  property :slug_url,   String, :key => true
  property :desc,       String
  property :content,    Text
  property :project,    String
  property :target_url, Text
  property :trackback,  Integer
  property :updated_at, String
  property :created_at, DateTime  # A DateTime, for any date you might like.
end

DataMapper.finalize
DataMapper.auto_upgrade!

posts = Post.all 

posts.each do |post|
  page "/kw/#{post.slug_url}.haml", :proxy => "/kw/template.haml" do
    @slug_url = post.slug_url
  end
end

我的 template.haml 只包含以下内容:= @slug_url

当我运行middleman build 时,我没有收到任何错误,而且它似乎工作正常,但它没有创建 kw 目录或它应该创建的任何文件。关于我在这里做错了什么有什么想法吗?

【问题讨论】:

  • 你至少应该创建目录。
  • 我已将 .haml 更改为 .html 并在 build 文件夹中为我创建了目录,显然它已经在源文件夹中创建了。它将一个 template.html 文件放在那里,但不是我期望的文件,例如 url-slug-something.html。

标签: ruby middleman static-site


【解决方案1】:

首先,“页面”采用输出路径,而不是当前版本中的模板路径(3.0 beta 支持这两种格式)。

所以你想做这样的事情:

page "/kw/#{post.slug_url}.html", :proxy => "/kw/template.html" do
  @slug_url = post.slug_url
end

您有一个用于处理数据的/source/kw/template.html.haml 文件。

【讨论】:

  • 代理是做什么的?当我运行它时,我在 build/kw/ 目录中得到一个 template.html 文件,它基本上是一个空白模板。对我来说,这使它看起来不是中间人的问题。你同意吗?
  • 添加:ignore => true以避免在不需要时输出template.html。
猜你喜欢
  • 2012-08-11
  • 2017-01-03
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多