javascript - Twitter bootstrap-jquery-plugins nicht kompiliert für die Produktion
Entwickle ich ein 3.1 Rails-app mit Twitter-Bootstrap mit seyhunak gem.
Auf die Produktion-Modus, ich war in der Lage, die grundlegenden bootstrap CSS-und JS-durch pipeline-Vorkompilierung:
RAILS_ENV=production bundle exec rake assets:precompile
Mit der gem-Datei :
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
gem "twitter-bootstrap-rails"
end
Und die application.js Datei:
//= require_tree .
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require bootstrap-tab
//= require bootstrap-modal
//= require bootstrap-dropdown
//= require bootstrap-popover
Die Anwendung funktionierte gut, außer für die bootstrap-plugins wie modals und dropdowns. Diese plugins vorhanden sind als statische javascript-Bibliotheken vorhandenen Innenseite der Verkäufer assets Verzeichnis:
/vendor/assets/javascripts/bootstrap-dropdown.js
...
Ich bin mir nicht sicher, ob diese Dateien werden vorkompilierte oder nicht, wie kann ich verwalten können, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gefunden!
War es nicht ein problem von bootstrap -, sondern mit richtig vorkompilieren jQuery. Sowie es gibt keine Notwendigkeit für das einbinden der javascript-Dateien für die einzelnen plugins. Sie sind bereits im Haupt-twitter/bootstrap.
Problem wurde gelöst, indem re-arrangieren die javascript-Dateien wie folgt:
application.js
Gemfile
Precompling die Vermögenswerte und gearbeitet!
In Ihrem
/vendor/assets/javascripts
eine Dateivendor_js.js
mit folgendem Inhalt:Nun in Ihrem
/app/assets/javascripts/application.js
auch eine LinieKönnen Sie anpassen, die vendor_js.js nur auf spezifische Anbieter-plugins, z.B. durch die Verwendung von
//= require bootstrap-dropdown
sind nur die bootstrap-Dropdown-Listen innerhalb der Verkäufer-javascripts-Verzeichnis.AKTUALISIERT, UM KOMMENTARE
Da Sie den bootstrap-JS-Dateien in Verkäufer/javascripts manuell, entfernen Sie bitte alle bootstrap-bezogene
require
s von Ihr application.js und fügen Sie Sie in vendor_js.js wie oben angemerkt. Stellen Sie sicher, dass Sie den richtigen Weg (falls Sie die Dateien in ein Unterverzeichnis). Auch stellen Sie sicher, dass jede Datei separat und Ort der Aufnahme der tooltip vor dem popover, da popover hängt davon ab, tooltip geladen werden ersten.vendor
? Wenn so, Sie konnten nun doppelt ... Bitte entfernen Sie alle bootstrap-bezogenen Zeilen aus Ihrem application.js. Außerdem denke ich, dass der tooltip aufgenommen werden müssen, bevor popover - also stattrequire_tree .
Sie vielleicht erklären müssen jede Datei einzeln in die vendor.js; und achten Sie auf die Reihenfolge der includes