我在异步rails 3.1应用程序上的资产有问题,我设法构建了一个显示我的问题的最小示例,但它对我没有多大帮助。Async Rails 3.1资产问题
该应用程序是非常简单的,我所做的就是: - 创建3.1(非RC)提出新的申请 - 添加薄+机架式:: FiberPool - 设置波旁(SCSS混入) - 运行应用程序
现在我开始用“轨服务器瘦”的服务器,在这之后的任何请求将在结束了“堆栈层次过深”,只有一个回溯行:/
这里是最小的应用:https://github.com/schmurfy/assets_crash
这里是回溯做的请求时,我得到: http://dl.dropbox.com/u/1313066/github/crash_assets.png
我试图挖,看看问题出在哪里了,害得我在文件template_handlers.rb SASS护栏:
def sass_options(scope)
importer = self.importer(scope)
options = sass_options_from_rails(scope)
load_paths = (options[:load_paths] || []).dup
load_paths.unshift(importer)
# bnding.pry
options.merge(
:filename => eval_file,
:line => line,
:syntax => syntax,
:importer => importer,
:load_paths => load_paths,
:custom => {
:resolver => Resolver.new(scope)
}
)
end
我试着用撬(IRB的替代)和我发现了什么是更令人不解的探索:虽然在binding.pry行我可以触发栈水平太深:
{}.merge(:anything => Resolver.new(scope))
结果是立竿见影的,但我无法找到该物体中的任何东西这将解释结果。
任何铅将受到欢迎。
你是否在系统上做了一些事情来显示光纤堆栈已经飞过(4kb)或者你在文档中发现了什么? –
起初,这是一个想法,然后由http://redmine.ruby-lang.org/issues/3187确认。之后,为了确定我编译了一个自定义ruby 1.9.2,我改变了定义堆栈大小的常量(我发现它很快,因为我知道要搜索什么),并且我的测试应用程序使用它:/ – Schmurfy