rake assets: прекомпиляция не работает (версия Rails 3.1.3) - PullRequest
2 голосов
/ 08 декабря 2011

После рассмотрения этот вопрос был задан много , много , много раз. Но я до сих пор не понимаю, почему rake assets:precompile терпит неудачу.

Я могу просматривать следующие результаты в своем браузере, используя локальный сервер (например, тонкий):

body{
@include background-image(image-url('my_image.png'));
background-repeat: repeat;
    ...
    ...
}

(ПРИМЕЧАНИЕ: путь к изображению, похоже, не работает вообще, и я использую мыслибский бурбон в качестве библиотеки SCSS)

Тем не менее, каждый раз, когда я запускаю прекомпиляцию, я получаю следующее (краткий след):

rake aborted!
images/my_image.png isn't precompiled
(in /path/to/myapp/app/assets/stylesheets/application.css.scss)

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

В этом посте предлагается, чтобы я изменил свой файл production.rb, который я сделал, и он скомпилировал мое изображение, и rake теперь жалуется, что у меня неопределенный миксин 'border-radius'. Возможно, это было следующее исключение, но я не уверен. И все работает локально.

Направляющие Rails (3.1.3) прямо заявляют об установке значения true

'uses more memory, performs poorer than the default and is not recommended'

Так что теперь у меня две проблемы. Понижение производительности, и моя библиотека SCSS теперь содержит неопределенные миксины.

Я бы хотел решить проблему с производственным развертыванием, возникшую из rake assets:precompile. Моя группа активов Gemfile выглядит следующим образом:

group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'zurb-foundation'
  gem 'bourbon' 
 end

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Если вы используете опцию assets: precompile, вы должны использовать @import операторы в каждой таблице стилей, в которой вы используете миксин.

например,

Допустим, у вас есть собственный миксин в app/assets/stylesheets/partials/_mixins.css.scss, который вы используете в таблице стилей, вы должны добавить

@import "partials/mixins";

к этой таблице стилей.

Я знаю, это не должно быть так, но на данный момент у меня нетне нашел другого пути.

0 голосов
/ 08 декабря 2011

Помощник пути к изображению принимает images часть пути, поэтому удалите его (и косую черту), и он должен начать работать.

...