Управление большим количеством Javascript / CSS (RAILS 3) - PullRequest
2 голосов
/ 16 марта 2011

Как вы можете сказать, у меня есть большое количество таблиц стилей / javascripts (одна из таблиц стилей является динамической и не может быть кэширована в all.css)

Очевидно, мне нужны только некоторые таблицы стилей в некоторыхситуации, но это не сулит ничего хорошего для кэширования в одной таблице стилей.Каков наилучший способ сделать это?(Например, мне не нужны таблицы стилей отчета или большие диаграммы, если я не нахожусь в конкретном отчете, который нуждается в высоких диаграммах)

  <%= stylesheet_link_tag ['autocomplete.css', 'datepicker.css', 'web.css', 'common.css', 'home.css', 'course.css', 'admin.css'], :cache => true %>
  <%= stylesheet_link_tag [@current_client.name.downcase + '/' + @current_client.name.downcase + '.css'], :cache => false %>
  <%= javascript_include_tag ['jquery.js', 'class.js', 'jquery.extensions.js','nested_form.js','jquery.tablednd.js','jquery.autocomplete.js', 'date.js', 'datepicker.js', 'rails.js', 'common.js', 'navigation.js', 'patient_autocomplete.js', 'courses/course_request.js', 'course_steps/sort_course_steps.js', 'course_steps/next_step.js', 'enrollments/complete_course.js', 'flowplayer/flowplayer.js', 'flowplayer/playlist.js', 'course_steps/video.js', 'course_steps/presentation.js', 'highcharts.js', 'reports/course_assignment.js', 'reports/courses_allocated.js', 'reports/pie_chart.js'], :cache => true %>

1 Ответ

1 голос
/ 17 марта 2011

Упакуйте вещи, общие для всех страниц, в одну таблицу стилей и Javascript с помощью Jammit или какого-либо другого объединенного файла и поместите это в основной макет;Затем добавьте некоторые урожаи в свой макет (как показано ниже).Затем в ваших соответствующих представлениях используйте блоки content_for (или помощники) для добавления того, что вам нужно.

# app/views/application.html.erb
<%= javascript_include_tag 'all_compacted.js' %>
<%= yield :extra_js %>
<%= stylesheet_link_tag 'all_compacted.css' %>
<%= yield :extra_css %>

# random view that needs something not in all_compacted.js
<%= content_for :extra_js do %>
  <%= javascript_include_tag 'highcharts.js' %>
<% end %>

Существует также плагин Javascript_auto_include , который будет автоматически загружать файлы JS на основе контроллера /действие, но это, вероятно, лучше подходит для чего-то с большим количеством пользовательских javascript на каждой странице (Ситуация Я хорошо знаком).

Возможно, стоит также проверить head.js , чтобы сделать неблокирующую загрузку javascripts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...