Sto cercando di far funzionare libsass con la pipeline di asset di Rails 4. Finora ho clonato la gemma ruby-libsass da Github nella cartella Vendor della mia applicazione. Ho aggiunto il followig alla mia Gemfile:Utilizzo di libsass con la pipeline di asset Rails
gem 'sassc', path: 'vendor/ruby-libsass/'
Poi ho seguito i documenti e ha aggiunto sottomoduli per libsass. All'interno della cartella libsass ho dovuto clonare la libreria sass2scss per la sua compilazione. L'ho compilato con make install-shared
che ha creato /usr/local/lib/libsass.so
. Dopo questo, l'esecuzione rake assets:precompile
dare il seguente errore:
rake aborted!
LoadError: Could not open library 'sass': dlopen(sass, 5): image not found.
Could not open library 'libsass.dylib': dlopen(libsass.dylib, 5): image not found
Così ho collegato simbolicamente libsass.dylib
questo /usr/local/lib/libsass.dylib
. Dopo di che, ho ricevuto il seguente errore:
NameError: uninitialized constant SassC::Lib::Context::SassOptions
ho provato commentando la linea in /ruby-libsass/lib/sassc/lib/context.rb
che chiama SassOptions, e che sembrava di aver fatto il lavoro e la compilazione dei beni. Il codice commentata sulla linea 20, context.rb:
layout :source_string, :pointer,
:output_string, :string,
# :options, SassOptions,
:error_status, :int,
:error_message, :string,
:c_functions, :pointer,
:included_files, :pointer,
:num_included_files, :int`
Ora, il problema che sto avendo è che non vedo alcuna differenza di velocità. Rimane a circa 7 secondi per compilare le mie risorse, con o senza l'aggiunta di libsass al mio Gemfile. Dal momento che la compilazione iniziale ha dato un errore relativo al fatto che il file tot libsass.dylib non è stato trovato, ho supposto che stia effettivamente usando sassc invece di sass, ma sembra che non lo sia.
Qualche idea di cosa potrei mancare? Non ho esperienza con C, quindi non sono nemmeno sicuro se ho compilato tutto correttamente, ecc.
questo ragazzo ha funzionato in passato, sembra che abbia dovuto biforcarsi sass-rails: https://github.com/andrew/libsass-rails –
in 'context.rb', aggiungere quanto segue in alto : 'require_relative 'sass_options''. – glasz
Grazie ci provo quando ho un minuto e vedere se questo fa alcuna differenza. Penso che il problema sia più che le librerie compilate non vengano utilizzate. –