Конвейер активов Rails 3.1 CSS manifest.yml - PullRequest
1 голос
/ 02 февраля 2012

Итак, у меня есть app / stylesheets / screen.css.sass

На производстве путь становится чем-то вроде /assets/screen-md5hash.css

Файл обслуживается, однако онне отображается в manifest.yml и не отображается в папке public / assets (поэтому я предполагаю, что он обслуживается Rails, а не Apache).

Почему его там нет?

1 Ответ

4 голосов
/ 03 февраля 2012

Вы правы - файл обслуживается Sprockets.

Это наводит на мысль о нескольких проблемах с настройками вашего конвейера.

Во-первых, у вас все еще может быть

config.assets.compile = true

в production.rb.

Это должно быть ложно. Если это так, то любые ресурсы, которые не были предварительно скомпилированы (и находятся в публичном каталоге), обслуживаются Sprockets.

Во-вторых, если вы хотите сослаться на любой файл js или css, который НЕ назван application, вам нужно добавить этот файл в массив прекомпиляции, чтобы он был предварительно скомпилирован для производства.

Тот факт, что он отсутствует в манифесте, предполагает, что он не был предварительно скомпилирован.

Вы должны добавить это в application.rb:

config.assets.precompile += ['screen.css'] 

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

...