#ruby-on-rails-3.1
#ruby-on-rails-3.1
Вопрос:
Я разрабатываю приложение Rails 3.1, я не понимаю, куда мне поместить свой собственный код javascript (например my.js ) и куда поместить стороннюю библиотеку javascript (например, jQuery-UI).
Я знаю, что в старой версии Rails весь javascript должен быть помещен в каталог public/ javascripts/, когда я создаю приложение Rails 3.1, папки public/ javascripts/ нет, но есть app/assets/ и vernordor/assets/, и есть application.js в приложении / активах я хотел быспросите:
- в Rails 3.1, куда я должен поместить my.js а jQuery-UI js в Rails 3.1??
- что такое app/assets/application.js что должен делать?
- как я могу включить my.js и jQuery-UI js на моей html-странице?
—————-Я прав?———-
Находится require_tree
в application.js используется для включения сторонних библиотек в app / vendor / assets / javascript/
и require "something"
в application.js используется для включения js-файла в app/assets/javascripts/?? Я прав?
Ответ №1:
Поместите свой собственный javascript и coffeescript под app/assets/javascripts
.
Загляните внутрь app/assets/javascripts/application.js
. При запуске rails new APP
он должен был быть добавлен //= require_tree .
в этот файл. Подробнее см. Раздел 2.3.
Это специальная инструкция, которую понимает Sprockets, которая автоматически включает все файлы в тот же каталог, что и ваш application.js
файл, и во вложенные папки под ним.
Если вы хотите, чтобы были загружены jquery и jquery-ui, ваш application.js файл должен выглядеть следующим образом
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree .
Если у вас есть gem 'jquery-rails'
в вашем пакете, этот драгоценный камень уже добавил файлы jquery в конвейер ресурсов для вас, поэтому вам не нужно беспокоиться о загрузке их вручную.
В разделе head вашего представления приложения вы захотите включить javascript_include_tag "application"
раздел head. Скорее всего, если вы использовали генератор, он уже есть.
Пожалуйста, ознакомьтесь с конвейером ресурсов Rails для получения дополнительной информации.
Строка .
with require_tree
указывает на местоположение текущего файла. //=
Оператор ссылается на конвейер активов.
Размещение файла в app / assets, lib / assets или vendor / assets добавит его в конвейер активов. См. Раздел 2.1.
Комментарии:
1. @ Alex, ты все еще меня путаешь, я спрашиваю о месте, куда поместить стороннюю библиотеку и куда поместить мой собственный файл js. И я также смущен использованием и значением application.js . Является ли require_tree в application.js используется для включения сторонних библиотек в app / vendor / assets / javascript и требует «чего-то» в application.js используется для включения js-файла в app / assets / javascripts?? Я прав?
2. Чтобы включить файл, который находится в вашем конвейере ресурсов, вы должны ссылаться на него в правильном порядке в вашем application.js . Ваш собственный javascript исключается, если вы вставляете его
app/assets/javascripts
и используетеrequire_tree .
в своем application.js который хранится в этом месте.3. файлы jQuery поступают из
gem 'jquery-rails'
4. Обратите внимание, что если вы используете
jquery-ui
gem И добавляетеjquery-ui
скрипт вручную, это вызовет проблемы. Лучше всего придерживаться самого gem.
Ответ №2:
У Райана Бейтса есть хороший обзор конвейера ресурсов в Railscasts. Это помогло мне, когда я пытался разобраться. http://railscasts.com/episodes/279-understanding-the-asset-pipeline