你如何将sinatra应用程序移动到github页面?

时间:2015-08-27 18:45:08

标签: ruby heroku web github sinatra

我创建了一个sinatra应用程序,我试图把它放在github页面上。我可以在localhost上运行我的应用程序,但我不知道如何将其推送到实际的网站。

我尝试使用谷歌搜索和搜索stackoverflow,我一直看到人们使用heroku。这需要吗?无论如何直接从sinatra推送到网络?我可以在github页面上运行一个简单的index.html文件,但我不知道如何运行我的sinatra应用程序。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:4)

正如Sirajus所说,Github页面只提供静态HTML页面。 Sinatra是一个用于生成生成网页的代码的框架。它确实适用于需要服务器端处理的网站(即动态),但can serve static pages too(明智的决定)。

它不提供页面本身,它运行在Rack兼容application server(如Thin,Puma,Unicorn或Webrick)上,当被问及时,它会构建页面,给它到服务器和服务器给你。

像Github页面这样的完全静态网站或通过亚马逊S3提供的网站只是位于HTTP文件服务器(Apache和Nginx种类)之后的HTML文件集合。他们静态因为他们没有动态生成... 动态。他们不会改变,不需要额外的处理来为他们服务。他们只是坐在那里等待服务。你可以使用像Sinatra和Thin这样的东西,但增加的复杂性增加了维护工作,安全问题,花费额外的金钱,时间......而且至关重要的是,降低了服务速度。如果您的网站基本上都是静态的,我的意思是服务器不需要处理任何内容,那么您可能最好使用从关闭生成静态页面的内容。 There are many libraries to help with this,Middleman(基于Padrino,因此Sinatra)和Jekyll会想到,Nanoc也是如此。

您可以通过保存每个路由的输出并上传它们来模拟这些库的功能,如果它是合适的。有些库可以帮助解决这个问题,例如Sinatra Static及其分支Sinatra Export。如果需要,可以使用cURL为每个路径使用 {/ em> curl http://localhost:9292/ > index.html命令保存页面。我前几天为自己的博客做了类似的事。

如果不适合这样做或者您不能打扰,请设置一些服务器托管。很多这些服务都可以免费开始,所以尝试一下就不会有什么伤害,你可以从中做很多事情。

答案 1 :(得分:2)

要运行sinatra应用程序,您需要使用服务器托管它。 Github页面只运行html页面而不是ruby Web应用程序。

要托管您的sinatra应用程序,您可以使用heroku / digital ocean。