简单的“静态”Ruby站点?

时间:2012-10-18 12:27:55

标签: ruby static

对于早期开发,我通常会构建一个静态版本的站点。以前我使用PHP并且有类似......

images
javascripts
stylesheets
templates
-- header.php
-- footer.php
index.php
users.php

index.phpusers.php会为这些页眉和页脚文件提供一些基本的PHP包含代码。

我还可以使用一些PHP函数。

但是我已经没有使用PHP来做任何事情并且几乎完全使用Ruby ...所以我想知道,有没有办法在Ruby中实现像这样基本的东西?

主要寻找允许我的东西:

  1. 基本文件包含(所以我可以创建简单的模板)
  2. 在文件中运行Ruby
  3. 理想情况下,我也可以使用LiveReload

    其他详细信息:我在OS X上本地运行此操作,我通常使用Pow作为服务器。

5 个答案:

答案 0 :(得分:1)

彼得推荐Sinatra是正确的。通常有两种类型的Sinatra应用程序。模块化和经典。对于您的示例,我将创建一个经典的应用程序。如果您发现风格更符合您的需求,那么将其转换为模块化并不是很多工作。

您需要使用gem install sinatra安装gem。为项目创建一个新目录,并创建两个新文件,如下所示:

# app.rb
require 'sinatra'

get '/' do
  erb :index
end

# config.ru
require './app'
run Sinatra::Application

创建另一个名为views的目录并添加此文件:

# index.erb
Hello World!

然后键入ruby app.rb和viola,您现在在localhost:4567/上有一个工作项目。 要提供像css和js这样的静态文件,只需创建一个公共目录即可。从那里,任何文件都可以在根URL之后访问。因此,如果您创建了一个css文件夹,其各自的URL将为:yourdomain.com/css/styles.css

所以整个目录都是如下:

app/
  app.rb
  config.ru
  public/
    css/
    js/
    images/
  views/
    index.erb

Sinatra Bookread me之间,您应该能够找到所需的所有信息。

要完成模板,您需要一个名为Sinatra Partial的内容。

我不太熟悉LiveReload,但似乎Compass完成了同样的事情并且与Sinatra有很好的整合。只要pow是基于机架的,你应该没有问题使用它。

这是我用于所有项目的Sinatra Bootstrap。它有Compass和Sinatra Partial预配置,使用Heroku轻松部署。它还使用了Slim,Coffeescript,Thin(作为服务器),Twitter Bootstrap和Sass,但使用您的各自的收藏夹或将它们全部删除它们不应该太多工作​​。

答案 1 :(得分:1)

我向我的女朋友赠送了一个带有域名的网站,我选择了Jekyll来完成使用RubyGems的工作。

这很简单有趣。此外,你有很多可用的主题配置.YML文件只是改变那里将适用于孔站点。虽然Linux或Mac OS是官方Jekyll网站建议的,但我在Windows中做了这个并不是什么大问题。他们为在其网站上的窗口工作定义了步骤。

http://jekyllrb.com/ 

最好的部分是我只能通过git hub页面托管网站。我没有必要买任何东西。 Git hub允许您托管一个回购。 (funFact:Jekyll由github发明人开发)

这是我使用的那个,并且在20个小时内完成了网站,而不知道Ruby和Jekyll。 所以我建议你看看吧!

答案 2 :(得分:0)

也许Jekyll符合条款?

其描述:

  

Jekyll是一个简单的,可识别博客的静态网站生成器。需要一个   模板目录(代表网站的原始形式),运行它   通过纺织或降价和液体转换器,并吐出一个   完整,静态的网站适合Apache或您的服务   最爱的网络服务器这也是GitHub Pages背后的引擎,   您可以使用它来托管项目的页面或博客   GitHub的

答案 3 :(得分:0)

是的,我使用Sinatra,有些样本请参见https://github.com/sinatra/sinatra/。 在文件中运行ruby不是非常静态,但在Sinatra中你可以做到这两点。

答案 4 :(得分:0)

Jekyll不会让你在文件里面运行Ruby代码。 Jekyll是一个解析引擎,捆绑为红宝石。您基本上使用HTML和Liquid编写代码模板,并使用markdown编写内容,这些内容将被嵌入生成可以上传到任何Web服务器的纯HTML文件。