首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用haml和heroku?

如何使用haml和heroku?
EN

Stack Overflow用户
提问于 2009-03-01 20:48:28
回答 3查看 3.5K关注 0票数 5

我试着让haml在没有使用sinatra的情况下工作(据我所知,Heroku不允许安装宝石)

我到目前为止所做的事:

  • 在我的项目中克隆haml git回购
  • 添加:需要'haml/lib/haml.rb‘到我的sinatra主文件中

以下工作:

代码语言:javascript
运行
复制
get '/test' do
  Haml::Engine.new('%p test').render
end

但以下几点并没有:

代码语言:javascript
运行
复制
get '/test2' do
  haml :my_template
end

我知道错误:

NoMethodError -未定义的方法each' for nil:NilClass (haml):20:in呈现‘

./haml/lib/haml/engine.rb.lib:152:在“呈现”中

./haml/lib/haml/engine.rb.lib:152:in `instance_eval‘

./haml/lib/haml/engine.rb.lib:152:在“呈现”中.

还有其他文件需要吗?有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-25 13:23:28

Heroku支持通过在项目根目录中创建.gems文件并将其添加到Git来安装gems。在下一次推送时,将安装所需的宝石。要安装Haml,文件将包含以下行:

代码语言:javascript
运行
复制
haml --version '>= 2.2.0'

更多信息可以在这里找到:http://docs.heroku.com/gems

票数 11
EN

Stack Overflow用户

发布于 2009-03-01 21:30:37

最明显的两种可能性(按概率排列):

  1. 您的Haml文件中的某些Ruby代码出现了错误。如果您可以在Sinatra之外尝试相同的代码,那么它在那里呈现OK吗?
  2. 文件my_template.haml不是不在那里,就是没有正确命名。
票数 2
EN

Stack Overflow用户

发布于 2012-10-28 18:45:13

正如StuFF mc所指出的,为了回应petergassner的回答,现在正确的方法是使用应用程序的Gemfile。在那个Gemfile里你会做的

代码语言:javascript
运行
复制
gem "haml", ">= 2.2.0"

Heroku知道当你推动你的应用程序安装宝石在你的宝石文件。

请注意,如果您想使用sasshaml,那么您可能需要跳过几个圈才能完成这个设置。传统上haml的工作方式是将编译好的css文件写入磁盘,这在heroku的只读文件系统上是个问题。有人最终写了一个插件/创业板来解决这种情况(如sass on-herku或诸如此类)。

目前,haml-rails gem似乎使用资产管道来处理这个问题,但是如果您使用的是Sinatra,这可能不会对您起作用。因此,您要么希望查看其中一个宝石是否仍在运行,要么接受heroku对目前正在接受的建议。这篇文章也是针对rails的,但是您应该能够在没有太多困难的情况下为Sinatra适当地工作。(基本上,这里总结一下,heroku现在支持编写tmp目录,所以只要您可以配置sass gem和Sinatra应用程序来使用一些tmp位置,就应该是好的。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/600487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档