我在异步 Rails 3.1 应用程序上遇到了资产问题,我设法构建了一个显示我的问题的最小示例,但它对我没有多大帮助。
该应用程序非常简单,我所做的是: - 使用 3.1(非 rc)创建一个新应用程序 - 添加 Thin+Rack::FiberPool - 设置波旁威士忌(scss mixins) - 运行应用程序
现在我用“rails server thin”启动一个服务器,之后任何请求都会以“堆栈级别太深”结束,只有一个回溯行:/
这是最小的应用程序:https ://github.com/schmurfy/assets_crash
这是我在发出请求时得到的回溯:http: //dl.dropbox.com/u/1313066/github/crash_assets.png
我试图深入了解问题出在哪里,导致我在文件 template_handlers.rb 中使用 sass-rails:
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
我尝试使用 Pry(一种 irb 替代方案)进行探索,但我发现更令人费解的是:在 binding.pry 行中,我可以通过以下方式触发堆栈级别太深:
{}.merge(:anything => Resolver.new(scope))
结果是立竿见影的,但我在该对象中找不到任何可以解释结果的东西。
欢迎任何线索。