Хорошо, я получаю эту ошибку, когда пытаюсь использовать конвейер ресурсов. Я не понимаю, что вызвало это.
Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#show
Showing .../app/views/photos/_photo_view.html.haml where line #2 raised:
jquery.autocomplete isn't precompiled
Extracted source (around line #2):
1: - content_for :scripts do
2: = javascript_include_tag 'jquery.autocomplete'
Однако, это предварительно скомпилировано. Я запустил rake assets:precompile RAILS_ENV=production
перед запуском сервера, и в моем каталоге public/assets
есть файл: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js
, а также .js.gz
, и он точно отражен в манифесте:
#manifest.yml
---
application.js: application-4277323e3f7506b71f45c71e8a3a7c8f.js
jquery.autocomplete.js: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js
jquery.cycle.all.min.js: jquery-183ef696b43944deaee5778d3094dbdd.cycle.all.min.js
jquery.fancybox.js: jquery-e52e44b2b4fb349bade9beb91461a810.fancybox.js
jquery.plupload.queue.js: jquery-f2e7f6ad7d2e5ca50235ed21f8d573cc.plupload.queue.js
jquery.tools.js: jquery-c53e304240fa56767fe0f2a00cb4bceb.tools.js
plupload.full.js: plupload-5dd26ee3fff6b627c19f196e9d1429dd.full.js
application.css: application-ce5217e1714cbc4e9c3ff6c5dfc9b221.css
fancybox.css: fancybox-9ee9c36f391086e4b0629b7df4042390.css
jquery.plupload.queue.css: jquery-661fbf3f503aa32ff11c004838c0820b.plupload.queue.css
jquery.js: jquery-4d23f0cfea862f56deb04f0a8ab1fcee.js
jquery.min.js: jquery-8a50feed8d29566738ad005e19fe1c2d.min.js
Файл javascript, о котором идет речь, не загружен в мой файл application.js
, потому что он мне нужен только в одном представлении и не используется нигде в приложении. Чтобы учесть это (и исправить звёздочки, пытающиеся скомпилировать sass-партиалы), я сконфигурировал свой regexp перед компиляцией так:
#environments/production.rb
config.assets.precompile = [/^[a-zA-Z]*\..*/]
(Приведенное выше регулярное выражение прекомпилирует любой файл, начинающийся с буквенного символа, и игнорирует файлы, начинающиеся с буквенного символа, например подчеркивания).
Есть ли у кого-нибудь понимание того, что вызывает это и как это можно исправить? Трубопровод активов заставляет меня выдернуть волосы!
UPDATE
только что обнаружил, что Rails.configuration.assets.digests возвращает ноль в рабочем состоянии. возможно проблема в том, что по каким-то причинам звездочки не находят manifest.yml.
Возможно, я ошибаюсь, но кажется, что sprockets не использует assets_host в конфигурации при поиске manifest.yml.
https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/sprockets/railtie.rb#L38