2011-07-28 7 views
3

私はユーザー変数に基づいて(ユーザーがサイトをカスタマイズするための方法として)sassファイルを動的に作成するためのレールプロジェクトを用意しています。私は動的に生成され、実際にはファイルシステムに書き込まれていないので、HTTP経由でサイトのメインサスファイルにそのファイルをインポートする必要があります。インポートSASSファイルシステムの代わりにhttpを超えて

:load_pathsディレクティブを設定して、ファイルシステムではなくhttpでファイルを検索するようにSASSに指示するにはどうすればよいですか?

ドキュメントには可能性がありますが、私はオンラインで例を見つけることはできません。 http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#custom_importers

答えて

5

このドキュメントでは、独自のインポータを実装することができます。 HTTPが例として使用されています。幸いにも、そうすることはあまり難しくありません。 https://gist.github.com/1111803

それはのように積極的にそれができたとしてキャッシュしない、とあなたはサスがすべてを探すためにファイルシステムに加えて、それを使用することを認識しておく必要があります

ここ

、私はシンプルなHTTPインポートツールを実装しました(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

関連する問題