2011-07-28 22 views
3

我有一个rails项目,我想根据用户变量动态创建一个sass文件(作为用户自定义站点的一种方式)。我需要通过http将该文件导入到该站点的主要sass文件中,因为它是动态生成的,而不是实际写入文件系统。SASS部分通过HTTP而不是文件系统

如何配置:load_paths指令来告诉SASS通过http而不是通过文件系统来查找该文件?

该文件说这是可能的,但我无法在网上找到任何示例。 http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#custom_importers

回答

5

本文档讨论的事实是您可以实现自己的导入程序;以HTTP为例。幸运的是,这样做并不困难。

在这里,我已经实现了一个简单的HTTP进口商:https://gist.github.com/1111803

它不缓存为积极,因为它可以,你应该知道,无礼的话将使用它除了文件系统来查找所有导入(如果您使用像Compass这样的框架,则有许多这样的框架)。如果你需要更多的性能,你应该在这种情况下缓存失败。不过,它似乎在我的测试中起作用。

可以简单地通过要求sass_http.rb文件,然后将它添加到负载路径中使用它:

require 'sass_http' 
Sass::Plugin.options[:load_paths] ||= [] 
Sass::Plugin.options[:load_paths] << Sass::Importers::HTTP.new("http://stylesheets.example.com/") 

路径目前必须引用一个目录(即端中斜线)。你应该得到所有常用的调试信息(使用HTTP,而不是文件系统,路径)。

+0

哇感谢!这正是我一直在寻找的! –

+0

嘿,你的进口报表是怎样的? – nikhil

相关问题