通过http导入SASS部分而不是文件系统

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

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

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

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

在这里,我实现了一个简单的HTTP导入程序: https : //gist.github.com/1111803

它没有尽可能积极地缓存,你应该知道除了文件系统之外Sass还会使用它来查找所有导入(如果你使用像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,而不是文件系统,路径)。