11

Ich benutze Codekit zum Schreiben weniger, die es dann automatisch in CSS konvertiert.Ausschließen von Dateien aus Assets: Vorkompilieren in Schienen

Ich möchte nicht Schienen meine weniger Dateien in CSS konvertieren, ich eher Codekit tun.

wenn ich das Vermögen über

rake assets:precompile 

vorkompilieren ich

rake aborted! 
cannot load such file -- less 

Wie kann ich einen bestimmten Ordner/Dateitypen von Vorkompilieren ausschließen ? (Alle meine weniger Dateien sind in app/assets/Stylesheets/weniger und die CSS (was will ich werden vorkompilierte) sind in app/assets/Stylesheets/css

Update

Löschen application.less dies löst aber wie kann ich es aus der Verarbeitung in erster Linie ohne

Antwort

18

vom Asset Pipeline Führung:

die Standard-Matcher für Dateien enthalten application.js Kompilieren ap plication.css und alle Nicht-JS/CSS-Dateien (dh .coffee und .scss Dateien werden nicht automatisch enthalten, da sie zu JS/CSS kompilieren):

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ] 

Wenn Sie andere Manifeste haben oder einzelne Stylesheets und JavaScript Dateien enthalten, können Sie sie zum precompile Array hinzufügen:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js'] 

Also, ich würde sagen, dass Ihre Lösung istzu ändernzum Ausschließen von .less Dateien. so etwas wie dies vielleicht (in einer geeigneten Umgebung Datei, wie config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ] 
+0

das funktioniert nicht .. gleicher Fehler –

+1

Dies schlägt fehl, weil Rails nicht weiß, was mit den 'less' Dateien zu tun ist. Wenn Sie das Juwel "weniger Schienen" zu Ihrer App hinzufügen, wird der Fehler möglicherweise behoben, aber Sie haben die Lösung, die Sie in der Frage angegeben haben, nicht gefunden. – Kashyap

+0

ok korrektur - das funktioniert, wenn ich es in production.rb .. nicht it application.rb .. irgendwelche nur mit bündel exec –

1

Wenn die Verzeichnisstruktur unter dem app/assets Ordner ist so:

application.css 
/css 
(generated by code kit) 
|...home.css 
|...index.css 
/less 
|...home.less (assuming this is the extension) 
|...index.less 

Dann in Ihrer application.css Datei , es muss eine Direktive geben, die besagt *= require_tree . Das sagt Rails, alle Dateien/Verzeichnisse zu scannen und zu versuchen, alle Dateien in eine CSS-Datei zu kompilieren.

Ändern Sie dies zu *= require_directory ./css und es lädt die Dateien unter dem css Verzeichnis für die Kompilierung.

+0

immer noch gleich :(es ist erwähnenswert, dass mein baum ist /css/application.css und/less/application.less –

+0

Ah! Das würde fehlschlagen, da application.css die Hauptdatei ist, in die die Sub-Assets kompiliert werden. – Kashyap