我需要一种简单的方法来生成静态网页,以便我可以使用Apache或Nginx提供它们.目前我正在使用SproutCore的构建工具(Abbot)来生成静态页面,但这有点麻烦,因为它是为构建SproutCore应用程序而非非SproutCore HTML页面而设计的.
这是我的要求:
以下是我找到的可能的解决方案:
有什么想法吗?
经过漫长的评估过程,我决定使用Middleman.它可以解决问题,我喜欢它的简单性以及我可以使用现有的Rack组件.
最好的祝福,
佩卡·马蒂拉
是否可以在中间人文件中检索页面的当前路径?例如,如果我有一个layout.erb
类似于以下内容的布局文件:
<%= page.path %>
<%= yield %>
Run Code Online (Sandbox Code Playgroud)
和测试文件index.html
:
Testing
Run Code Online (Sandbox Code Playgroud)
当Middleman渲染页面时,我会得到类似的东西:
/index.html
Testing
Run Code Online (Sandbox Code Playgroud) 我正在中间人组建一个简单的投资组合网站.我根据本地YAML数据动态生成"工作"页面.这是在config.rb中:
data.work.projects.each do |project|
page "/work/#{project[0]}.html", :proxy => "project_template.html" do
@project = project
end
end
Run Code Online (Sandbox Code Playgroud)
出于搜索引擎优化的目的,我希望这些动态生成的页面中的每一个都具有唯一的页面标题和描述.
标题当前在布局文件中设置如下
%title
= current_page.data.title
Run Code Online (Sandbox Code Playgroud)
而且我知道我可以使用frontmatter来设置这样的current_page变量
---
title: "Recent Work - "
---
Run Code Online (Sandbox Code Playgroud)
我可以将它粘贴到我的project_template.haml中,但是有什么方法可以让这样的东西工作吗?
---
title: "Recent Work - " + @project.title
---
Run Code Online (Sandbox Code Playgroud) 我正在使用middleman-blog和middleman-deploy.
我想要做的是,在我部署的分支内,我希望将静态文件部署到repo中的子文件夹(即不是根文件夹).
我尝试在我这样做config.rb
:
activate :deploy do |deploy|
deploy.build_before = true
deploy.deploy_method = :git
deploy.branch = 'gh-pages-2'
deploy.remote = 'github'
deploy.path = 'blog'
end
Run Code Online (Sandbox Code Playgroud)
但这不起作用,它仍然部署到根目录.事实上,它甚至没有创建/blog
我正在寻找的文件夹.
当我在本地访问配置设置时,这些是我在下面看到的设置:deploy
:
:deploy
:branch = "gh-pages"
:build_before = true
:clean = false
:commit_message = nil
:deploy_method = :git
:flags = nil
:host = nil
:password = nil
:path = "blog"
:port = 22
:remote = "github"
:strategy = :force_push
:user = nil
Run Code Online (Sandbox Code Playgroud)
这向我表明正确设置了path属性.
我也尝试过deploy.path = '/blog' …
构建静态HTML网站时,您可以像这样设置基本网址<base url="http://localhost:8888/mysite" />
.据说当你插入一个图像时,你可以从那个基本网址中这样做<img src="/img/logo.png" />
,这相当于<img src="http://localhost:8888/mysite/img/logo.png" />
我的问题是,当我移动网站时,这些相对链接不起作用,这很痛苦,因为我试图与Dropbox上的某人分享.我以为我可以将基本网址添加到其中<base url="http://dl.dropbox.com/u/xxxxxxxx/mysite" />
,但图片链接在这里查看:<img src="http://dl.dropbox.com/img/logo.png" />
而不是我在头部设置的完整基本网址.
为什么是这样?
在layout
的文件haml
,我想确定我们是否在我们的发展和建设环境.我们正在使用米德曼.
我想做这样的事情:
- if environment == 'development'
/ Development Code
= javascript_include_tag "Dev.js"
Run Code Online (Sandbox Code Playgroud)
我试图访问Ruby的环境变量,并在config.rb
文件中定义自定义变量但没有成功.
我正在尝试使用Middleman创建一个静态站点.git repo master
有源文件.静态文件在build
文件夹中生成.gitignore
.我有一个gh-pages
Github页面的分支.如何设置gh-pages
具有build
文件夹内容的东西master
.
谢谢.
我想知道如何使用middleman console
.这是一个简单的irb吗?我能用它做什么与简单的irb不同?
middleman console [options] # Start an interactive console in the cont...
Run Code Online (Sandbox Code Playgroud)
我有一些文章,我尝试做,Article.all
但我有以下错误:
NameError: uninitialized constant Middleman::Application::MiddlemanApplication1::Article
from (irb#1):1
Run Code Online (Sandbox Code Playgroud)
我也有本地数据 /data/friends.json
但Friend.all输出错误.
{
"friends": [
"Tom",
"Dick",
"Harry"
]
}
Run Code Online (Sandbox Code Playgroud)
我看到Symbol.all_symbols
输出了很多中间变量和函数,但我真的不知道如何使用中间人控制台.
我只是习惯了Middleman和Ruby.生成具有活动状态的导航的最佳方法是什么?
我将在CloudFront和S3上托管使用Middleman生成的静态网站.我想添加多语言支持,中间人允许我本地化内容,并在/index.html上有英文版本,在/sp/index.html上有翻译内容.
我希望能够在请求中检测"Accept-Language"标头,并基于该服务器/index.html或/sp/index.html.
根据我的研究,我无法看到使用S3和Cloudfront做到这一点的方法,但也许你们有个主意?
如果没有"适当和好的方式"使用CloudFront和S3这样做,那么下一个最佳替代方案是什么?目前我正在考虑在JavaScript中检测语言,然后在语言不是英语的情况下重定向用户.
问候,金
middleman ×10
ruby ×6
amazon-s3 ×1
deployment ×1
git ×1
github ×1
github-pages ×1
haml ×1
html ×1
localization ×1
navigation ×1
root ×1
url ×1