Rails 3.1, исключить файлы JS из конвейера ресурсов

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

Я хочу включить большинство своих JS-файлов в конвейер ресурсов, но у меня есть несколько, которые я хочу загрузить условно (или только на определенных страницах). Это большие сложные файлы, которые никогда не будут используется 95% пользователей, поэтому я бы предпочел не загружать их для каждого пользователя. Один набор JS-файлов предназначен для календаря и помещен в:

app/assets/javascripts/calendar

Итак, мой манифест настроен так, чтобы включать только верхний каталог ( и исключить подкаталог календаря):

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory .

My config / environment / production.rb:

# Compress JavaScripts and CSS
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

# Generate digests for assets URLs.
config.assets.digest = true

# This following config is left over from previous Rails app,
# so not sure if it's now unnecessary ...
# Disable Rails's static asset server
# In production, Apache or nginx will already do this
config.serve_static_assets = false

В представлении я использую nifty_layout Райана Бейтса, чтобы вручную включить файлы календаря:

javascript "calendar/date.js", "calendar/jquery.weekcalendar.js", "calendar/custom.js"

Я пробовал выполнить предварительную компиляцию в и разработка, и производство - в документации неясно, где я должен это делать, но это похоже на производство.

И когда я запускаю страницу, я получаю следующее:

ActionView::Template::Error (calendar/date.js isn't precompiled)

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

Какое решение?

Спасибо!

8
задан dwayne 19 December 2011 в 15:38
поделиться