ruby on rails - library - Error de importación de Sass en la aplicación Rails 3-"Archivo para importar no encontrado o ilegible: brújula"
sass scss (7)
Tengo una aplicación Rails 3 en la que ejecuté compass init rails ./ --using blueprint
. Puedo @import
archivos desde el directorio / stylesheets, pero aparece un error cuando trato de @import compass
.
En este momento, la aplicación tiene dos simples archivos sass:
common.scss
$body-background: blue;
main.scss
@import "common";
//@import "compass";
body {
background: $body-background;
}
Con la línea de @import "compass"
comentada, funciona: obtengo un fondo azul, así que sé que Sass está trabajando.
Si elimino el comentario de la línea y trato de importar compass
o blueprint
o cualquier otra cosa, aparece un error como este.
Syntax error: File to import not found or unreadable: compass.
Load paths:
/Users/eric/path/to/myrailsapp/app/stylesheets
on line 2 of /Users/eric/path/to/myrailsapp/app/stylesheets/main.scss
1: @import "common";
2: @import "compass";
3:
4: body {
5: background: $body-background;
6: }
Tenía que pasar tal vez, tenía que decirle explícitamente a Sass dónde encontrar la gema Compass, así que agregué una línea add_import_path
a config / compass.rb:
require ''compass''
require ''html5-boilerplate''
project_type = :rails
project_path = RAILS_ROOT if defined?(RAILS_ROOT)
add_import_path "/Library/Ruby/Gems/1.8/gems/" # unfortunately this has no effect
http_path = "/"
css_dir = "public/stylesheets"
sass_dir = "app/stylesheets"
images_dir = "public/images"
javascripts_dir = "public/javascripts"
cache_dir = "tmp/sass-cache"
http_images_path = "/images"
http_stylesheets_path = "/stylesheets"
http_javascripts_path = "/javascripts"
He estado buscando en Google durante dos días y no puedo determinar por qué tengo este problema con las declaraciones @import
básicas. ¿Cómo le digo a Sass dónde encontrar las bibliotecas Compass y Blueprint?
Arreglé este problema cambiando a la gema compass-rails
lugar de la gema compass
en mi Gemfile (no olvides reiniciar tu servidor). Solo en caso de que alguien se encuentre aquí.
De acuerdo, después de la ayuda del increíble Chris Eppstein, pude encontrar la línea ofensiva. En config/environments.rb
tenía esta línea:
Sass::Plugin.options[:template_location] = {
"#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets"
}
Con las versiones actuales de Rails (tengo 3.0.7) y Compass (0.11.1) esta línea no es necesaria . Lo agregué después de seguir un tutorial. Si sass no puede encontrar la brújula, podría ser porque esta línea está estropeando su Sass::Plugin.options[:template_location]
.
El comando @import en Sass importa archivos .scss o .sass, no archivos .css.
Parece que se perdió algo en la instalación. (¿Tal vez el compass install blueprint
línea?) Seguí los pasos aquí: http://compass-style.org/reference/blueprint/ y no pude volver a crear el problema.
Estaba recibiendo este error.
Cambié esta línea en mi application.rb desde:
Bundler.require(:default, Rails.env) if defined?(Bundler)
a:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
Además, asegúrese de que los archivos sean nombres something.css.sass NOT something.sass
Y otra cosa, tenía un viejo archivo compass.rb en mi directorio de configuración que no es necesario en Rails 3.2. Eliminar eso también resolvió este problema para mí.
Solucioné este error así:
En application.rb tuve
Bundler.require(:default, Rails.env) if defined?(Bundler)
y cambiado a
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
Esto fue después de actualizar un proyecto de 3.0.3 a 3.2.13
Solucioné este error después de golpear mi cabeza sobre él
Comenté esta línea en mi application.rb desde:
Bundler.require(*Rails.groups(:assets => %w(development test))) if defined?(Bundler)
y sin comentar:
Bundler.require(:default, :assets, Rails.env) if defined?(Bundler)
Estoy usando Rails 3.2.11
Solucioné este problema en mi servidor Rails 3.2.0 moviendo gem ''compass-rails'', ''~> 1.0.1''
desde el grupo :assets
en el Gemfile
, desde un consejo en https://github.com/Compass/compass-rails/issues/19 .