Подтвердить что ты не робот

Ruby on Rails 4: Как включить файлы Javascript в веб-приложение Rails?

Я создаю веб-приложение Rails 4, и я хочу включить некоторые .js файлы в свое приложение. Можно ли напрямую добавить файл JavaScript в мою папку Rails ..app/assets/javascripts и добавить ссылку в application.js следующим образом?

//= customejsfile.js 

Правильно ли это? Если да, возможно ли, чтобы я выполнил те же шаги при добавлении библиотеки jQuery и Bootstrap?

Любая помощь приветствуется.

4b9b3361

Ответ 1

Правильный способ включить ваши файлы:

//= require customejsfile

в вашем файле application.js. Что еще, по умолчанию у вас есть

//= require_tree .

который требует всех js файлов из пути assets/javascript, поэтому вам не нужно вводить его по своему усмотрению (и вы не должны или ваш файл будет включен дважды). Библиотека JQuery включена по умолчанию (и она исходит из jQuery gem). Если вы хотите Bootstrap, то вы можете сделать это так или использовать один из существующих драгоценных камней, например bootstrap-generators или twitter-bootstrap-rails.

Ответ 2

Взглянув на файл application.html.erb, вы увидите, что на application.js была ссылка:

<%= javascript_include_tag "application", "data-turbolinks-track" => true  %>

Итак, когда у меня была эта проблема, я сделал это: добавьте этот script в файл, где я хочу ссылаться на свой пользовательский javascript, но на этот раз m менял параметр. Поэтому вместо "application" у меня есть это:

<%= javascript_include_tag "customjsFile", "data-turbolinks-track" => true  %>

.

Надеюсь, что это поможет.

Ответ 3

Вы должны явно добавить jquery и bootstrap в application.js, тогда как вы будете автоматически включать настраиваемые файлы, требующие дерева каталогов. Если вы посмотрите на свой application.js, должен быть манифест, говорящий об этом. Вот как ваш application.js должен выглядеть с помощью bootstrap и jquery

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require bootstrap/affix
//= require bootstrap/alert
//= require bootstrap/button
//= require bootstrap/carousel
//= require bootstrap/collapse
//= require bootstrap/dropdown
//= require bootstrap/tab
//= require bootstrap/transition
//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/tooltip
//= require bootstrap/popover
//= require turbolinks
//= require_tree .

Не нужно добавлять свой собственный файл в этот список, так как вам требуются все файлы на одном уровне вашего приложения .js(или ниже в дереве каталогов) с последней директивой (require tree .)