Помощники по ресурсам Rails 3.1 генерируют старые пути css и javascript - PullRequest
2 голосов
/ 06 декабря 2011

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

Я перехожу на Rails 3.1, и все работает нормально в разработке.Но, тестируя производственное развертывание, я вообще не получаю никаких активов ... и не по обычной причине:)

Лучше всего я покажу, как выглядит строка включения основного javascript в моем макете.

ЭтоСтрока хамла:

= javascript_include_tag 'application'

В разработке я получаю:

<script src="/assets/application.js" type="text/javascript"></script>

В производстве та же строка выглядит следующим образом:

<script src="/javascripts/all.js?1320673090" type="text/javascript"></script>

В производстве включаются помощникивсе еще веду себя как я на 3.0.Активы компилируются просто отлично.Они находятся в папке public / assets (как и манифест), и nginx отлично их обслуживает, если я указываю своему браузеру правильный URL-адрес.

Я проверил свою версию Rails на сервере с помощью bundle exec rails -v .Я вернусь к версии 3.1.3.Кроме того, тот факт, что компиляция ресурсов на сервере работает должным образом, должно указывать на то, что все настроено "в целом нормально".Моя производственная среда содержит следующие строки, относящиеся к активам:

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.assets.precompile << /(^[^_]|\/[^_])[^\/]*/ # from https://gist.github.com/1184843

Я предполагаю, что какой-то Gem может переопределять помощников, но только делает это в работе?

Повторение: любое движение в правильном направленииздесь было бы здорово.Заранее спасибо.

1 Ответ

1 голос
/ 06 декабря 2011

Понял.

Проблема 1: Время от времени я получаю бит от Runit.Сегодня был такой день.В config / application.rb возникла проблема со ссылками на старые исправления компаса.Runit поддерживал работоспособность старого приложения при попытке «подключиться» к новому.

Ментальное примечание: всегда запускайте rails c production , если сомневаетесь.

После этогопути активов были не в стиле 3.0, но почти.Теперь они были /stylesheets/application.css и аналогичными ... не говоря уже о каталоге ресурсов.

Проблема 2: Звездочки должны быть необходимы в application.rb (если не требуется rails / all).Почему все работало в разработке и при компиляции в производстве, я не могу сказать.Но добавление строки, требующей звёздочки, решило эту проблему для меня.Мне никогда не приходило в голову, что требование может отсутствовать, поскольку только пути были неправильными, а все остальное работало отлично.Неожиданное предположение: для разработки локального сервера активов, вероятно, требуется маскировка звездочек, так как в главном приложении его нет.

Спасибо, что нашли время.Извините, что потратил это на вас.

...