@import
dovrebbe look per qualsiasi file .css.scss
si trovano nel percorso asset di carico, sia in app/assets/stylesheets
, lib/assets/stylesheets
, vendor/assets/stylesheets
, o qualsiasi percorsi aggiuntivi aggiunti da gemme, quindi è strano che si stanno ottenendo un errore.
Nota non è necessario passare un nome di cartella quando si utilizza @import
a meno che il file è in una sottodirectory di assets/stylesheets
- sass-rails
cercherà attraverso ogni cartella del percorso di carico e vedere se la risorsa esiste rispetto a quelle cartelle.
Per garantire che lib/assets/stylesheets
sia nel percorso di caricamento delle risorse (che dovrebbe essere, poiché è un'opzione predefinita) aprire un prompt di Rails e digitare Rails.application.config.assets.paths
. A titolo di esempio, ecco il risultato di una delle mie applicazioni:
ruby-1.9.3-p0 :012 > Rails.application.config.assets.paths
=> ["/Users/tom/ruby/qa/app/assets/images",
"/Users/tom/ruby/qa/app/assets/javascripts",
"/Users/tom/ruby/qa/app/assets/stylesheets",
"/Users/tom/ruby/qa/lib/assets/stylesheets",
"/Users/tom/ruby/qa/vendor/assets/javascripts",
"/Users/tom/ruby/qa/vendor/assets/stylesheets",
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.14/vendor/assets/javascripts",
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/javascripts",
"/Users/tom/.rvm/gems/ruby-1.9.3-p0/gems/bootstrap-sass-1.4.0/vendor/assets/stylesheets"]
Vale anche la pena assicurando che sass-rails
è fino ad oggi e l'ultima versione, in quanto credo prime versioni avevano il supporto limite in termini di cross-cartella @import
.
NB: Credo anche che convenzione suggerisce file come Bootstrap o jQuery dovrebbe andare nella cartella vendor/assets
piuttosto che lib/assets
Grazie per l'aiuto, ho funzionato. Devo aver appena avuto un errore di battitura da qualche parte. FWIW il file di bootstrap in questione è una mia creazione personalizzata che utilizzo per avviare nuove app, quindi mi sembra "lib" (condivisa tra le mie app) piuttosto che "vendor" (distribuzioni pubbliche). – Andrew
Sì, avrebbe senso, ho appena aggiunto i punti tra il tuo commento sulla mia risposta di ieri e la tua domanda ora e ho pensato che stavi usando una versione di Bootstrap di Twitter, in tal caso, ignorare la mia nota, 'lib' è sicuramente il giusto place – nobody
Oh ... :) In realtà il motivo principale del mio commento sulla tua risposta era che ero molto felice di trovare un esempio di un bootstrap trasformato in un gioiello che utilizzava la pipeline degli asset. Mi piacerebbe estrarre il mio bootstrap personalizzato in una gemma un giorno e il tuo è un ottimo riferimento su come farlo. Per ora basta spostarlo in lib è una bella pulizia. Grazie ancora! – Andrew