【问题标题】:How do you move a sinatra app to github pages?如何将 sinatra 应用程序移至 github 页面?
【发布时间】:2015-11-22 07:07:11
【问题描述】:

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

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

【问题讨论】:

    标签: ruby heroku web github sinatra


    【解决方案1】:

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

    要托管您的 sinatra 应用,您可以使用 heroku/数字海洋。

    【讨论】:

    • 如果我使用亚马逊的aws之类的东西,是否允许ruby应用程序?你还推荐哪个?
    • Heroku 对少数 Web 应用程序是免费的,AWS 也是免费的一年。数字海洋是有偿服务。 heroku,因为你是初学者。
    【解决方案2】:

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

    它本身不提供页面,它运行在符合 Rackapplication server(如 Thin、Puma、Unicorn 或 Webrick)上,当被询问时,它构建页面,将其提供给服务器和服务器给你。

    像 Github 页面或通过 Amazon 的 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 来保存页面,并使用命令 like curl http://localhost:9292/ > index.html 为每个路径保存页面。前几天我为自己的博客做了类似的事情。

    如果这样做不合适或者您不介意,请设置一些服务器托管。很多这些服务都是免费开始的,所以尝试一下它们不会有什么坏处,你会从每一个中学到很多东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-30
      • 2019-04-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2018-04-13
      相关资源
      最近更新 更多