关于在Heroku上部署Sinatra应用程序,我感到很困惑的事实上并不是一个实际问题 - 只是一个概念上的难题.
我有两个应用程序,几乎在每个方面都相同,只是一个将大部分逻辑放在一个不包含Sinatra :: Base类的文件中,并使用'require otherfilename'来获取它需要的逻辑.Sinatra:Base类名为Kincalc.
对于包含一个文件中所有逻辑的应用程序(即包含Sinatra:Base类的同一文件),在我的config.ru文件中,最后一行显示"运行Sinatra :: Application",它启动正常.但在另一个应用程序中,如果我将其作为最后一行包含,则应用程序正确上传并说它"已部署到Heroku"但它会显示"未找到"消息.当我有最后一行读'run Kincalc'时,它加载正常.
我已经来回检查了这两个应用程序是如何构建的,除了一个人使用第二个文件作为逻辑(也是在root用户)的事实.为什么这是一个问题,还是这真的是问题?当我尝试将第二个文件(没有Sinatra类的文件)放在一个单独的lib文件夹中时,它在我调用类名时仍然有效,但在我调用"Sinatra :: Application"时却不行.