【问题标题】:Sinatra Modular app not recognizing routes on AppFogSinatra Modular 应用程序无法识别 AppFog 上的路线
【发布时间】:2012-11-27 09:16:15
【问题描述】:

我已经开始使用模块化样式suggested in this stackoverflow answer 编写我的 Sinatra 应用程序,并已成功将其部署在 Heroku 上,但是当尝试部署到 AppFog(除了 datamapper mysql/postgres gems 之外的代码相同)时,我得到“未找到" 我定义的每条路线的错误。

== Sinatra/1.3.3 has taken the stage on 47195 for production with backup from Thin
myIP, 127.0.0.1 - - [08/Dec/2012 21:28:53] "GET / HTTP/1.0" 404 18 0.0030
myIP, 127.0.0.1 - - [08/Dec/2012 21:28:54] "GET /any_route HTTP/1.0" 404 18 0.0010
myIP, 127.0.0.1 - - [08/Dec/2012 21:28:58] "GET /about HTTP/1.0" 404 18 0.0008

我的视图和设置中的公共路径:

settings.views = "./views"
root = "."
settings.sin_auth_view_path =  "/mnt/var/vcap.local/dea/apps/myapp-0-d1d1d1dc0e543b1759afda27b/app/views/"
public_folder = "./public"

定义路线示例:

class MyApp < Sinatra::Application
  get '/' do
    @title = "Site Index Page"

    haml :index
  end
end

Config.ru

require ::File.join( ::File.dirname(__FILE__), 'app')

run MyApp.new

结构与上面链接的基本相同。

日志中没有应用程序错误,只有“未找到”消息和相应的 404“GET”条目。 PUBLIC 文件夹正常工作 - 我可以访问站点 url 之外的所有静态文件(即site.com/img/anypic.jpg)。而且,正如我所提到的,完全相同的应用程序可以在 Heroku 上完美运行。

我使用的是bundle包,所以可以使用自定义gem,在切换到模块化结构之前没有问题。

安装在 AppFog Ruby 1.9.3 运行时。

想法....

【问题讨论】:

    标签: ruby sinatra routes modular appfog


    【解决方案1】:

    感谢 AppFog Google 用户组的一位用户,解决方案是部署为 Rack 应用程序而不是 Sinatra 应用程序。

    注意:如果您使用的是require_relative,请确保使用--runtime ruby193 命令行选项:)

    【讨论】:

      【解决方案2】:

      我会检查您是否对“settings.sin_auth_view_path”条目有问题,因为它是绝对路径(而其他两个是相对路径)。 Heroku 没有正常的文件系统布局,当您在应用程序源之外提升时,您通常会在开发框中看到这种布局。

      【讨论】:

      • 如果 Heroku 没有正常的文件系统布局,那为什么它可以在那里和我的本地系统上工作呢?问题是它不适用于 AppFog。但我会尝试将“settings.sin_auth_view_path”更改为相对路径,看看这是否有所不同......并报告回来。谢谢。我也可以尝试直接在 AWS EC2 实例(Bitnami Ruby 193 AMI)上安装,看看效果如何。
      • 你能指出 Heroku 文件系统差异的解释吗?谢谢。
      • 见this。它不是超级描述性的,但基本上本地文件可以随时消失,并且您无法在应用程序源树之外访问。
      猜你喜欢
      • 2016-08-30
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多